Felsöka vanliga problem med flera tabeller
Den här artikeln hjälper dig att felsöka och lösa vanliga problem i flera tabeller som affärsmöjlighet, offert, order eller faktura i Microsoft Dynamics 365 Sales.
Problem 1 – I kontextformulär kan visas i formulärväljaren
I kontextformuläret används för att visa och anpassa sidopanelen i Deal Manager och i det nya gränssnittet för kontakter, affärsmöjligheter, leads och konton.
Orsak
Om din miljö har någon anpassning som anger formActivationState till Aktiv för dessa tabeller, visas formuläret I kontext i listrutan formulärväljare och låter användarna välja det här formuläret för att visa postinformationen.
Åtgärd
Om utseendet på I kontextformulär leder till förvirring kan du inaktivera I kontextformulär som du ser i följande skärmbild.
Problem 2 – Fel eller oväntat beteende när du arbetar med tabeller
Symptom
När du arbetar med tabeller (till exempel affärsmöjligheter, offert, order, faktura, offertprodukt och orderprodukt) ser du ett oväntat beteende eller ett fel i Dynamics 365 for Sales. Följande är några av de fel som kan uppstå när du arbetar med affärsmöjligheter, och de kan gälla för andra tabeller:
- "Utökad mängd är fel efter att offerten har ändrats" – det här felet kan inträffa på grund av ett anpassat plugin-program.
- "Fel vid sparande av affärsmöjlighet" – det här felet kan inträffa på grund av anpassad JavaScript.
- "Fel vid stängning av affärsmöjlighet" – det här felet kan inträffa på grund av ett anpassat arbetsflöde.
Orsak
Dessa problem kan uppstå på grund av felaktig anpassning av programmet.
Åtgärd
Du måste verifiera de felaktiga anpassningarna och lösa dem. Utför följande verifieringsmetoder för att identifiera vilken anpassning som orsakar problemet och lös sedan:
- Inaktivera ett anpassat plugin-program
- Inaktivera anpassad JavaScript
- Inaktivera en anpassad arbetsflödesprocess
Inaktivera ett anpassat plugin-program
Gå till Inställningar>Anpassningar>Anpassa systemet.
Välj Steg för Sdk-meddelandebearbetning.
En lista över tillgängliga SDK-meddelandebearbetningssteg visas.
Välj filterikonen, välj kolumnen Primär objekttypkod (Sdk-meddelandefilter) och välj sedan den tabell som felet inträffar för.
Välj de SDK-meddelandebearbetningssteg som kommer från de lösningar som ägs av dig.
Kommentar
Så här visar du dina anpassade SDK-meddelandebearbetningssteg:
Gå till Inställningslösningar> och öppna sedan lösningen.
Välj steg för SDK-meddelandebearbetning. Kontrollera att värdena är markerade på följande sätt: Komponenttyp till SDK-steg för meddelandebearbetning och Visa till alla.
Välj inaktivera.
Publicera anpassningarna.
Kontrollera problemet och om det inte inträffar är problemet med de anpassade SDK-meddelandebearbetningsstegen. Lös problemet.
Kommentar
Om problemet uppstår aktiverar du de SDK-steg för meddelandebearbetning som du inaktiverade nu och försöker inaktivera anpassad JavaScript eller inaktivera en anpassad arbetsflödesprocess.
Inaktivera anpassad JavaScript
Öppna formulärredigeraren för tabellen där felet inträffar. I det här exemplet väljer vi tabellen som Affärsmöjligheter och standardlösningsformuläret.
Välj Formuläregenskaper i formulärredigeraren.
Dialogrutan Formuläregenskaper öppnas.
På fliken Händelser väljer du kontrollen OnLoad i listrutan Händelser .
Välj de anpassade JavaScript-filer som kommer från lösningen som ägs av dig.
Kommentar
Så här visar du ditt anpassade JavaScript:
- Gå till Inställningslösningar> och öppna sedan lösningen.
- Välj WebResources. Kontrollera att värdena är markerade som: Komponenttyp till WebResources och Visa till alla.
- Välj filterikonen för att aktivera filteralternativ för kolumner. Välj Typ och ange filtret som Skript (JScript).
Välj Redigera. I det här exemplet har vi valt den anpassade JavaScript-filen eg_opportunity att redigera.
Avmarkera alternativet Aktiverat och välj OK.
Publicera anpassningarna.
Kontrollera problemet och om det inte inträffar är problemet med det anpassade JavaScript. Lös problemet.
Kommentar
Om problemet uppstår aktiverar du det JavaScript som du har inaktiverat nu och försöker inaktivera ett anpassat plugin-program eller Inaktivera en anpassad arbetsflödesprocess.
Inaktivera en anpassad arbetsflödesprocess
Gå till Inställningar>Anpassningar>Anpassa systemet.
Välj Processer. Dessa processer omfattar arbetsflöde, affärsprocessflöde och affärsregel.
En lista över tillgängliga processer visas.
Välj filterikonen, välj kolumnen Primär entitet och välj sedan den tabell som felet inträffar för.
Välj de processer som kommer från de lösningar som ägs av dig.
Kommentar
Så här visar du dina anpassade processer:
- Gå till Inställningslösningar> och öppna sedan lösningen.
- Välj Processer. Kontrollera att värdena är markerade som: Komponenttyp till Processer och Visa till alla.
Välj inaktivera.
Publicera anpassningarna.
Kontrollera problemet och om det inte inträffar är problemet med de anpassade processerna. Lös problemet.
Kommentar
Om problemet uppstår aktiverar du de processer som du inaktiverade nu och försöker inaktivera ett anpassat plugin-program eller Inaktivera anpassat JavaScript.
Problem 3 – Anpassad plugin-hantering med hjälp av en delad variabel
Symptom
- Skapa och uppdatera åtgärder för tabellerna Affärsmöjlighet, Offert, Order och Faktura utlöser uppdateringar på sina överordnade tabeller.
- När du hämtar information om tabellerna Affärsmöjlighet, Offert, Order och Faktura utlöses tjänsten Prisberäkning, som därefter utlöser anpassade plugin-program som skapats av kunder.
Åtgärd
Anpassade plugin-program kör åtgärder för att skapa, uppdatera och spara i tabellerna Affärsmöjlighet, Offert, Order och Faktura. Åtgärderna för att skapa och uppdatera dessa tabeller utlöser internt tjänsten Prisberäkning, som sedan uppdaterar de associerade prisrelaterade fälten eller attributen för sina överordnade tabeller.
Du kan identifiera eller särskilja eventuella uppdateringar i tabellerna Affärsmöjlighet, Offert, Order eller Faktura eller överordnade tabellerna Affärsmöjlighet, Offert, Order eller Faktura med hjälp av den interna tjänsten Prisberäkning eller med hjälp av ditt eget anpassade plugin-program. Den booleska delade variabeln InternalSystemPriceCalculationEvent
, som är tillgänglig via IPluginExecutionContext
, är tillgänglig i plugin-koden. Alla skapande- eller uppdateringshändelser som bearbetas med hjälp av tjänsten Prisberäkning anger värdet för variabeln InternalSystemPriceCalculationEvent
till true
. Standardvärdet InternalSystemPriceCalculationEvent
för är false
. Du kan komma åt den här variabeln från din anpassade plugin-kod för att styra flödet för din befintliga affärslogik.
Kommentar
Om du vill utföra anpassade plugin-åtgärder med hjälp av en delad variabel kontrollerar du att den färdiga prisberäkningstjänsten är inaktiverad.
Exempelkod
public void Execute(IServiceProvider serviceProvider)
{
// Obtain the tracing service
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
// Obtain the execution context from the service provider.
IPluginExecutionContext executionContext = (IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext))
bool isInternalSystemPriceCalculationEvent = false;
//Check existence of shared variable and fetch the value from executionContext
if (executionContext.ParentContext != null && executionContext.ParentContext.SharedVariables.ContainsKey("InternalSystemPriceCalculationEvent"))
{
isInternalSystemPriceCalculationEvent = (bool)executionContext.ParentContext.SharedVariables["InternalSystemPriceCalculationEvent"];
}
if (isInternalSystemPriceCalculationEvent)
{
//TO DO - Add or skip custom business logic
}
}