SharePointCommunity
Die deutschsprachige Community für SharePoint, Office 365 und mit Azure

Elemente in Tasks List eintragen per Javascript

bewertet von 0 Usern
Beantwortet Dieser Beitrag hat 1 Geprüfte Antwort | 3 Antworten | 1 Follower

Top-50-Beitragsschreiber
Weiblich
251 Beiträge
ExpoIT erstellt in 19 Jun 2017 12:58

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 

Viele Grüße AS

Beantwortet Geprüfte Antwort

Top-10-Beitragsschreiber
Männlich
18.087 Beiträge

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

Alle Antworten

Top-10-Beitragsschreiber
Männlich
18.087 Beiträge

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
Top-50-Beitragsschreiber
Weiblich
251 Beiträge

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

Top-10-Beitragsschreiber
Männlich
18.087 Beiträge

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

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
Seite 1 von 1 (4 Elemente) | RSS