2016-07-29 19 views
0

Ich habe Probleme mit einem AIF-Webdienst, um einen eindeutigen Primärschlüssel in unserem Vertragsmodul in Dynamics AX zu erstellen. Unsere Vertrags-PK's haben das Format 'CON - ######', und die Kontrakt-ID ist an eine Nummernfolge in AX gebunden. Wenn ich die Serviceoperation "Create" aufruft, übergebe ich eine 0 für "ContractId" und AX ersetzt diese 0 nicht durch eine tatsächliche Vertrags-ID aus der Nummernfolge.Dynamics AX 2012 R3 - Datensatzerstellung über AIF-Webdienst

Der AX-Serviceendpunkt ist als erweiterter Port konfiguriert. Gibt es eine Einstellung, die auf dem AX-Serviceendpunkt aktiviert werden muss? Gibt es eine Methodenüberschreibung auf der AX-Seite, die implementiert werden muss?

Ich habe eine Klasse CallContext-Variable namens CC und eine CreateEntityKey [] -Methode, die eine neue Entität einfügen sollte.

private CallContext cc = new CallContext() { Company = "MYCOMPANY", Language = "en-us" }; 

public EntityKey[] CreateEntityKey(AxdEntity_CLMContractTable axdBtmContractTable) 
{ 

    EntityKey[] ek = null; 

    AxdBtmContractHdr axBtmContractHeader = new AxdBtmContractHdr() 
    { 
      CLMContractTable = new AxdEntity_CLMContractTable[] 
      { 
       axdBtmContractTable 
      } 
     }; 

     try 
     { 
      ek = _client.create(cc, axBtmContractHeader); 
     } 
     catch (Exception e) 
     { 
      ek = null; 
     } 

     return ek; 
} 

Antwort

1

Soweit ich weiß, hat AIF nicht generell Zahlenfolge Felder aus der Box unterstützen, aber nur für einige Einheiten (Kundenaufträge zum Beispiel). Das bedeutet, dass Sie Ihre eigene Logik implementieren müssen, um aus einer Zahlenfolge eine neue Nummer zu erstellen. Werfen Sie einen Blick auf die Klasse AxSalesTable, Methode setSalesId, wie dies gemacht wird.