2017-08-24 3 views
0

私はこれに対する答えが切望しています。 Sitefinity APIを使用して、親アイテムの子アイテムを作成しています。プロパティの設定の終了時API結果がsystem_parent_id = nullの動的コンテンツレコードを作成

(これらは、動的モジュール内の動的コンテンツタイプである)私は、次のか:

historicDataEntry.SetWorkflowStatus(dynamicModuleManager.Provider.ApplicationName, "Published"); 
dynamicModuleManager.Lifecycle.Publish(historicDataEntry); 
historicDataEntry.SetParent(GetFundIDToUse(), etfType.FullName); 
dynamicModuleManager.SaveChanges(); 

結果が正しいsf_dynamic_contentテーブル内の2つのレコードであるが、第二レコードは何らかの理由でsystem_parent_idがnullになります。

ライブレコードが作成されると、parent_idマスタレコードが親IDを正しく参照しているにもかかわらず、

私が作成したレコードを開き、[公開]をクリックすると親IDが正しくコピーされますが、APIアプローチではそれが行われません。どうして?

答えて

1

Publishを呼び出す前とワークフローステータスを設定する前に、必ず親を設定する必要があります。

var parentMasterId = Id_of_the_parent_item; 

// type is the full name of the dynamic module 
string resolvedType = TypeResolutionService.ResolveType(type); 

// create the child item 
var itemToCreate = manager.CreateDataItem(resolvedType); 

// set some other properties of the child, like Title, etc. 

// set the parent of the child 
itemToCreate.SetParent(parentMasterId, "full_name_of_the_parent_type"); 

itemToCreate.SetWorkflowStatus(manager.Provider.ApplicationName, "Published"); 

manager.Lifecycle.Publish(itemToCreate); 

manager.SaveChanges(); 
+0

イップ私の答えです:ここで

は、サンプルコードです。私はあなたの反応を得る直前にそれを理解しました。奇妙なことは、モジュールビルダーによって提供されるコードリファレンスでは、逆のことです。 – Jacques

関連する問題