SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Elemente in Tasks List eintragen per Javascript

Geprüfte Antwort Dieser Beitrag hat 3 Antworten

Ohne Rang
354 Beiträge
ExpoIT erstellt 19 Juni 2017 12:58
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo liebes Forum,

ich schreibe gerade ein Javascript, welches Items in die Tasks Liste eintragen soll. Leider funktioniert es doch nicht, der Code gibt zwar Task created Successfully !!!! aber ich finde nirgends einen Eintrag.

Vielleicht seht ihr auf Anhieb den Fehler:

 

function onNewTask() {

alert('Task created Successfully !!!!');

}

 

function createNewTask()

{

var context = SP.ClientContext.get_current();

 

 

//Tasks

var tasks = context.get_web().get_lists().getByTitle('Tasks');

var info = new SP.ListItemCreationInformation();

var listItem = tasks.addItem(info);

listItem['Task Name'] = 'Hello';

//listItem['Assigned To'] = 'Administrator';

listItem.update();

context.load(listItem);

context.executeQueryAsync(Function.createDelegate(this, onNewTask()));

}

Ist es so, dass das Eintragen im Tasks-List anders ist als bei benutzerdefinierten Listen?
Danke 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 19 Juni 2017 15:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Es *sollte* eigentlich funktionieren.

Ich verwende allerdings immer
listItem.set_item("Title", "Hello");

Und Du solltest beim executeQueryAsync auf jeden Fall immer auch einen Failed-Callback angeben (im Moment hast Du nur den Success-Callback). Was der Failed-Callback macht, ist erstmal egal. Im einfachsten Fall schreibt er nur eine Meldung in die Konsole (console.log), aber natürlich kann man auch aufwendigeres Logging betreiben. Auf jeden Fall brauchst Du aber eine Möglichkeit, über Fehler informiert zu werden.

Und wie ich das schreibe, sehe ich auch einen Fehler: Deine alert-Box siehst Du nicht deshalb, weil der Success-Callback aufgerufen wird, sondern weil Du ihn selbst aufrufst. Entferne die beiden Klammern hinter onNewTask!

Übrigens kannst Du Dir das ganze Geraffel mit createDelegate sparen. Wenn Du eine benannte Funktion hast, gib einfach ihren Namen an. Aber ohne die beiden Klammern!. Hier also einfach nur onNewTask. Oder eben einfach eine anonyme Funktion so:
function() { alert("Hallo Welt"); }

Und den eigentlichen Fehler habe ich wahrscheinlich auch gefunden. Man darf bei Personenfeldern (AssignedTo) nicht den sichtbaren Namen verwenden. Setze die Id, die Du im Zweifel über web.ensureUser() bekommst. Ich glaube aber, man kann auch direkt den Login verwenden, also "domain\username".

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
354 Beiträge
ExpoIT Als Antwort am 19 Juni 2017 15:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi, 

mensch hast du mich erschreckt... Du hast so spät geantwortet, dass ich dachte du bist im Urlaub oder krank.

jetzt klappt's mit dem Eintragen. Das mit dem User muss ich mir noch näher angucken, das funktioniert leider noch nicht. Geht leider auch nicht mit dem Login.

Tausend Dank!!!

Viele Grüße AS

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Juni 2017 08:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="ExpoIT"]mensch hast du mich erschreckt... Du hast so spät geantwortet, dass ich dachte du bist im Urlaub oder krank[/quote]

Manchmal hab sogar ich noch was anderes zu tun. Und manchmal sitze ich tatsächlich einfach nicht vorm Rechner - selbst das kommt vor :-)

Viele Grüße
Andi
af @ evocom de
Blog