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()));
Viele Grüße AS
Es *sollte* eigentlich funktionieren.
Ich verwende allerdings immerlistItem.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".
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!!!
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 :-)