Je dois créer ou mettre à jour le champ de recherche de numéro de ticket dans les produits d'approbation de prix. Ce numéro de ticket (champ de recherche) est lié à Ticket (champ de texte) dans une autre entité appelée Tickets d'approbation de prix.Comment insérer un numéro de ticket (champ de recherche) dans les produits d'approbation de tarification MS Dynamics CRM (entité personnalisée) à l'aide du composant de script ssis
Ceci est mon code dans le composant de script.
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;
}
Lorsque je démarre le package SSIS, son exécution sans erreur. Mais d'une manière ou d'une autre, aucune donnée n'est insérée.
je n'ai aucun problème pour créer un champ de texte normal. Mais quand il s'agit de chercher sur le terrain, les solutions Internet suggèrent d'utiliser EntityReference selon mon code, mais je n'ai aucune idée de ce qui ne va pas. Donc je suis un peu perdu ici.
Je n'ai pas vu Service.Create ou Service.Update dans votre code. Il n'y a pas non plus de différence dans le bloc de création/mise à jour. –