価格承認製品でチケット番号検索フィールドを作成または更新する必要があります。このチケット番号(参照フィールド)は、価格設定承認チケットという別のエンティティのチケット(テキストフィールド)にリンクされています。MS Dynamics CRMにチケット番号(検索フィールド)を挿入する方法ssisのスクリプトコンポーネントを使用して承認製品(カスタムエンティティ)を挿入する方法
これはスクリプトコンポーネントのコードです。
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Entity ApprovalProductEnt = new Entity("new_ticketproduct");
ColumnSet columns = new ColumnSet(true);
columns = new ColumnSet(new String[] { "new_ticket",
"new_productgroup",
"new_producttype",
"new_productitem" });
Guid TicketNumberId = new Guid();
TicketNumberId = getTicketNumber(Row.OppportunityID, ref organizationservice);
//update
if (TicketNumberId != Guid.Empty)
{
ApprovalProductEnt["new_ticket"] = new EntityReference("new_pricingapprovalticket", TicketNumberId);
}
else
//create
if (TicketNumberId != Guid.Empty)
{
ApprovalProductEnt["new_ticket"] = new EntityReference("new_pricingapprovalticket", TicketNumberId);
}
}
public Guid getTicketNumber(string ticketnumber, ref IOrganizationService service)
{
Guid TicketNumberGuid = Guid.Empty;
QueryExpression TicketNumberQuery = new QueryExpression { EntityName = "new_pricingapprovalticket", ColumnSet = new ColumnSet(true) };
TicketNumberQuery.Criteria.AddCondition("new_ticketnumber", ConditionOperator.Equal, ticketnumber);
EntityCollection TicketNumberQueryRetrieve = service.RetrieveMultiple(TicketNumberQuery);
for (var i = 0; i <TicketNumberQueryRetrieve.Entities.Count; i++)
{
TicketNumberGuid = TicketNumberQueryRetrieve.Entities[0].GetAttributeValue<Guid>("new_ticket");
}
return TicketNumberGuid;
}
SSISパッケージを起動すると、エラーなしで実行されます。しかし何らかの形でデータが挿入されていません。
私は、通常のテキストフィールドを作成するには何の問題もありません。しかし、検索フィールドに来るとき、インターネットソリューションは私のコードとしてEntityReferenceを使用することを提案しますが、何が間違っているのか分かりません。だから私はここで少し失われている。
コードにService.CreateまたはService.Updateが表示されませんでした。また、作成/更新ブロックにも違いはありません。 –