Delen via


Veelvoorkomende problemen met meerdere tabellen oplossen

Dit artikel helpt u bij het oplossen van veelvoorkomende problemen in meerdere tabellen, zoals verkoopkansen, offertes, bestellingen of facturen in Microsoft Dynamics 365 Sales.

Probleem 1: in contextformulier kan worden weergegeven in de formulierkiezer

Het in contextformulier wordt gebruikt voor het weergeven en aanpassen van het zijpaneel in dealbeheer en in de nieuwe interface voor contactpersonen, verkoopkansen, potentiƫle klanten en accounts.

Oorzaak

Als uw omgeving aanpassingen heeft die de formActivationState instelt op Actief voor deze tabellen, wordt het in contextformulier weergegeven in de vervolgkeuzelijst formulierkiezer en kunnen gebruikers dit formulier selecteren om de recorddetails weer te geven.

Vervolgkeuzelijst formulierkiezer met de optie In contextformulier.

Oplossing

Als het uiterlijk van In ContextFormulier tot verwarring leidt, kunt u het in contextformulier deactiveren, zoals wordt weergegeven in de volgende schermopname.

In contextformulier met de optie om te deactiveren.

Probleem 2: fout of onverwacht gedrag tijdens het werken aan tabellen

Symptomen

Terwijl u aan tabellen werkt (zoals verkoopkansen, offerte, order, factuur, offerteproduct en orderproduct), ziet u onverwacht gedrag of een fout in Dynamics 365 for Sales. Hier volgen enkele van de fouten die kunnen optreden tijdens het werken aan verkoopkansen en deze kunnen van toepassing zijn op andere tabellen:

  • "Extended Amount is wrong after revising quote": deze fout kan optreden als gevolg van een aangepaste invoegtoepassing.
  • 'Fout tijdens het opslaan van de verkoopkans': deze fout kan optreden vanwege aangepaste JavaScript.
  • 'Fout tijdens het sluiten van de verkoopkans': deze fout kan optreden vanwege een aangepaste werkstroom.

Oorzaak

Deze problemen kunnen optreden vanwege een onjuiste aanpassing van de toepassing.

Oplossing

U moet de onjuiste aanpassingen controleren en deze oplossen. Voer de volgende verificatiemethoden uit om te bepalen welke aanpassing het probleem veroorzaakt en los het vervolgens op:

Een aangepaste invoegtoepassing deactiveren

  1. Ga naar Instellingen>Aanpassingen>Het systeem aanpassen.

  2. Selecteer de stappen voor het verwerken van SDK-berichten.

    Er wordt een lijst met beschikbare stappen voor het verwerken van SDK-berichten weergegeven.

  3. Selecteer het filterpictogram , selecteer de kolom Primary Object Type Code (Sdk Message Filter) en selecteer vervolgens de tabel waarvoor de fout optreedt.

    Ga naar de aangepaste invoegtoepassingslijst om de tabel te selecteren waarvoor de fout optreedt.

  4. Selecteer de stappen voor het verwerken van SDK-berichten die afkomstig zijn van de oplossingen die eigendom zijn van u.

    Notitie

    De stappen voor het verwerken van aangepaste SDK-berichten weergeven:

    1. Ga naar Instellingenoplossingen> en open de oplossing.

    2. Selecteer de stappen voor het verwerken van SDK-berichten. Controleer of de waarden als volgt zijn geselecteerd: onderdeeltype naar SDK-berichtverwerkingsstap en weergeven op alles.

  5. Selecteer Deactiveren.

  6. Publiceer de aanpassingen.

    Kies en deactiveer onbeheerde aangepaste invoegtoepassingen.

  7. Controleer of het probleem zich voordoet en of het niet optreedt, het probleem is met de stappen voor het verwerken van aangepaste SDK-berichten. Los het probleem op.

Notitie

Als het probleem zich voordoet, activeert u de SDK-stappen voor berichtverwerking die u nu hebt gedeactiveerd en probeert u aangepaste JavaScript uit te schakelen of een aangepast werkstroomproces te deactiveren.

Aangepast JavaScript uitschakelen

  1. Open de formuliereditor van de tabel waarin de fout optreedt. In dit voorbeeld selecteren we de tabel als Verkoopkansen en het standaardoplossingsformulier.

    Formuliereditor openen.

  2. Selecteer Formuliereigenschappen in de formuliereditor.

    Selecteer Formuliereigenschappen in de formuliereditor.

    Het dialoogvenster Formuliereigenschappen wordt geopend.

  3. Selecteer op het tabblad Gebeurtenissen het besturingselement OnLoad in de vervolgkeuzelijst Gebeurtenissen .

    Selecteer het besturingselement OnLoad in de vervolgkeuzelijst Gebeurtenissen.

  4. Kies de aangepaste JavaScript-bestanden die afkomstig zijn van de oplossing die eigendom is van u.

    Notitie

    Uw aangepaste JavaScript weergeven:

    1. Ga naar Instellingenoplossingen> en open de oplossing.
    2. Selecteer WebResources. Controleer of de waarden zijn geselecteerd als: Onderdeeltype voor WebResources en Weergeven op Alles.
    3. Selecteer filterpictogram om filteropties voor kolommen in te schakelen. Selecteer Type en stel het filter in als Script (JScript).

    Selecteer Type en stel het filter in als Script (JScript).

  5. Selecteer Bewerken. In dit voorbeeld hebben we het aangepaste JavaScript-bestand geselecteerd eg_opportunity om te bewerken.

    Invoerdetails in het dialoogvenster Handler-eigenschappen.

  6. Schakel de optie Ingeschakeld uit en selecteer OK.

    Schakel de optie Ingeschakeld in het dialoogvenster Handler-eigenschappen uit.

  7. Publiceer de aanpassingen.

  8. Controleer het probleem en of het niet optreedt, het probleem is met het aangepaste JavaScript. Los het probleem op.

Notitie

Als het probleem zich voordoet, schakelt u het JavaScript in dat u nu hebt uitgeschakeld en probeert u een aangepaste invoegtoepassing te deactiveren of een aangepast werkstroomproces deactiveren.

Een aangepast werkstroomproces deactiveren

  1. Ga naar Instellingen>Aanpassingen>Het systeem aanpassen.

  2. Selecteer Processen. Deze processen omvatten werkstroom, bedrijfsprocesstroom en bedrijfsregel.

    Er wordt een lijst met beschikbare processen weergegeven.

  3. Selecteer het filterpictogram, selecteer de primaire kolomentiteit en selecteer vervolgens de tabel waarvoor de fout optreedt.

    Ga naar de werkstroomlijst voor aangepaste processen om de tabel te selecteren waarvoor de fout optreedt.

  4. Kies de processen die afkomstig zijn van de oplossingen die eigendom zijn van u.

    Notitie

    Uw aangepaste processen weergeven:

    1. Ga naar Instellingenoplossingen> en open de oplossing.
    2. Selecteer Processen. Controleer of de waarden zijn geselecteerd als: Onderdeeltype voor processen en weergeven op alles.
  5. Selecteer Deactiveren.

  6. Publiceer de aanpassingen.

    Onbeheerde proceswerkstromen kiezen en deactiveren.

  7. Controleer of het probleem zich voordoet en of het niet optreedt, het probleem is bij de aangepaste processen. Los het probleem op.

Notitie

Als het probleem zich voordoet, activeert u de processen die u nu hebt gedeactiveerd en probeert u een aangepaste invoegtoepassing te deactiveren of aangepast JavaScript uit te schakelen.

Probleem 3: aangepaste invoegtoepassingsafhandeling met behulp van een gedeelde variabele

Symptomen

  • Bij het maken en bijwerken van bewerkingen voor verkoopkans-, offerte-, order- en factuurtabellen worden updates voor de bovenliggende tabellen geactiveerd.
  • Als u gegevens ophaalt over verkoopkansen, offertes, orders en facturen, wordt de prijsberekeningsservice intern geactiveerd, waardoor aangepaste invoegtoepassingen worden geactiveerd die door klanten zijn gemaakt.

Oplossing

Aangepaste invoegtoepassingen voeren bewerkingen voor maken, bijwerken en opslaan uit op verkoopkans-, offerte-, order- en factuurtabellen. De bewerkingen voor het maken en bijwerken van deze tabellen activeren intern de service Prijsberekening, die vervolgens de bijbehorende prijsgerelateerde velden of kenmerken van de bovenliggende tabellen bijwerkt.

U kunt eventuele updates in verkoopkans-, offerte-, order- of factuurtabellen of bovenliggende verkoopkansen, offertes, orders of facturen identificeren of onderscheiden met behulp van de interne prijsberekeningsservice of met behulp van uw eigen aangepaste invoegtoepassing. De Booleaanse gedeelde variabele InternalSystemPriceCalculationEvent, die toegankelijk is via IPluginExecutionContext, is beschikbaar in de invoegtoepassingscode. Als u een gebeurtenis maakt of bijwerkt die wordt verwerkt met behulp van de prijsberekeningsservice, wordt de waarde van de variabele InternalSystemPriceCalculationEvent ingesteld op true. De standaardwaarde InternalSystemPriceCalculationEvent is false. U kunt deze variabele openen vanuit uw aangepaste invoegtoepassingscode om de stroom van uw bestaande bedrijfslogica te beheren.

Notitie

Als u aangepaste invoegtoepassingsbewerkingen wilt uitvoeren met behulp van een gedeelde variabele, moet u ervoor zorgen dat de out-of-the-box Price Calculation-service is uitgeschakeld.

Voorbeeldcode

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
    }

}