1

SharePointアドインでリストアイテムを作成する必要があります。私はOfficeDev Githubサイトhereから機能を得ました。関数を呼び出すと、 "this"が最初に現れる行で失敗します。SharePointアドインJSOMリストアイテムエラーを作成します。 "this"は定義されていません

エラーは次のとおりです。 未定義またはnull参照のプロパティ「oListItem」を設定することができません

// line calling the function 
 
createDELListItem(document.getElementById("resultpanel"), uniqueID, "MTD_On_Demand"); 
 

 
// function 
 
function createDELListItem(resultpanel, extractionID, extractionType) { 
 
     var clientContext; 
 
     var oWebsite; 
 
     var oList; 
 
     var itemCreateInfo; 
 

 
     clientContext = new SP.ClientContext.get_current(); 
 
     oWebsite = clientContext.get_web(); 
 
     oList = oWebsite.get_lists().getByTitle("Global_Variable_Store"); 
 

 
     itemCreateInfo = new SP.ListItemCreationInformation(); 
 
     // Line throwing the "null or undefined" error 
 
     this.oListItem = oList.addItem(itemCreateInfo); 
 
     //A guid to send with message that uniquely identifies the list item. 
 
     this.oListItem.set_item("ExtractionID", extractionID); 
 
     //A brief title (description) of the variable set here in this list item. 
 
     this.oListItem.set_item("Extraction Type", extractionType); 
 
     //The Variable name 
 
     this.oListItem.set_item("StartTime", convertThisDate); 
 
     //The process descriptor that set the variable. This is set by the code. 
 
     this.oListItem.update(); 
 

 
     clientContext.load(this.oListItem); 
 
     clientContext.executeQueryAsync(
 
      Function.createDelegate(this, successHandler), 
 
      Function.createDelegate(this, errorHandler) 
 
     ); 
 

 
     function successHandler() { 
 
      resultpanel.innerHTML = "Go to the <a href='../Lists/Global_Variable_Store'>list</a> to see your new item."; 
 
     } 
 

 
     function errorHandler() { 
 
      resultpanel.innerHTML = "Request failed: " + arguments[1].get_message(); 
 
     } 
 
    }

答えて

2

それらしいthisあなたのケースで定義されていない、私はthisキーワードでの使用を避けるだろうリスト項目を作成するための関数を次のように置き換えます。

function addListItem(list,itemProperties,success,error) 
{ 
    var ctx = list.get_context();  
    var itemCreateInfo = new SP.ListItemCreationInformation(); 
    var listItem = list.addItem(itemCreateInfo); 
    for(var name in itemProperties) { 
     listItem.set_item(name, itemProperties[name]) 
    } 
    listItem.update(); 
    ctx.load(listItem); 
    ctx.executeQueryAsync(
     function() { 
      success(listItem);   
     }, 
     error 
    ); 
}  

使用法

var properties = { 
     "ExtractionID" : "----", 
     "Extraction Type": "----", 
     "StartTime": "----"    
    }; 
    var ctx = SP.ClientContext.get_current(); 
    var web = ctx.get_web(); 
    var list = web.get_lists().getByTitle("Global_Variable_Store"); 
    addListItem(list,properties, 
     function(contactItem){ 
      console.log('Item has been created successfully'); 
     }, 
     function(sender,args){ 
      console.log('Error occured while creating item:' + args.get_message()); 
    }); 
関連する問題