Nicht im Mapping verfügbare Felder
In den PX Rest Api Importen ist es nicht mehr wie bei pxBook Importen möglich, normale Spalten, wenn diese im Mapping fehlten, in der Import-Definition unter "Zusatzfelder" einzufügen, um so diese Spalten im Proffix abzufüllen. Dies führt zu Fehlern beim Ausführen des PX Rest Api Requests.
Auch wenn wir bestrebt sind, immer alle benötigten Felder als direkte Mappings bereitzustellen, könnte es dennoch vorkommen, dass mal ein Feld nicht verfügbar ist. Aus diesem Grund wurde in den meisten PX Rest Api Importen für die entsprechenden DTOs jeweils ein neues Mapping, die alle in Ihrer Beschreibung mit "Zusatz.-" beginnen, hinzugefügt. In diesen Mappings können per C# Script globale Variablen befüllt werden, deren abgefüllte Werte dann beim Import berücksichtigt werden.
Folgende statische Variabeln stehen dazu im Namespace «WATO.PxDocCreator.Globals» in der statischen Klasse «Var» zur Verfügung:
für nicht gemappte Felder bei Dokument-Import
- public static WATO_PX_Service.PXModels.AUF.Dokument.AUF_Dokumente pxZusDokumentRestApi = null;
- public static WATO_PX_Service.PXModels.AUF.Dokument.Position pxZusDokumentPositionRestApi = null;
- public static WATO_PX_Service.PXModels.AUF.Dokument.Zahlung pxZusDokumentZahlungRestApi = null;
- public static WATO_PX_Service.PXModels.AUF.Dokument.Vorauszahlung pxZusDokumentVorauszahlungRestApi = null;
- public static WATO_PX_Service.PXModels.ADR.ADR_Adressen pxZusDokumentAdresseRestApi = null;
- public static WATO_PX_Service.PXModels.ADR.ADR_Kontakte pxZusDokumentAdresseKontaktRestApi = null;
- public static WATO_PX_Service.PXModels.ADR.ADR_Adressen pxZusDokumentRechAdresseRestApi = null;
- public static WATO_PX_Service.PXModels.ADR.ADR_Kontakte pxZusDokumentRechAdresseKontaktRestApi = null;
- public static WATO_PX_Service.PXModels.ADR.ADR_Adressen pxZusDokumentLiefAdresseRestApi = null;
- public static WATO_PX_Service.PXModels.PRO.PRO_Auftraege pxZusDokumentAuftragRestApi = null;
Für nicht gemappte Felder bei Artikel-Import
- public static WATO_PX_Service.PXModels.LAG.Artikel.LAG_Artikel pxZusArtikelRestApi = null;
- public static WATO_PX_Service.PXModels.LAG.LAG_Lieferanten pxZusArtikelLieferantRestApi = null;
Für nicht gemappte Felder bei Adress-Import
- public static WATO_PX_Service.PXModels.ADR.ADR_Adressen pxZusAdresseRestApi = null;
Für nicht gemappte Felder bei Kontakt-Import
- public static WATO_PX_Service.PXModels.ADR.ADR_Kontakte pxZusKontaktRestApi = null;
Für nicht gemappte Felder bei Debitor-Rechnung, Kreditor-Rechnung u. Fibu-Buchung-Import
- public static WATO_PX_Service.PXModels.FIB.Buchung.FIB_Buchungen pxZusBuchungRestApi = null;
- public static WATO_PX_Service.PXModels.FIB.Buchung.Buchungszeile pxZusBuchungszeileRestApi = null;
Für nicht gemappte Felder bei Zahlung/Vorauszahlung-Import
- public static WATO_PX_Service.PXModels.AUF.Dokument.Zahlung pxZusZahlungRestApi = null;
- public static WATO_PX_Service.PXModels.AUF.Dokument.Vorauszahlung pxZusVorauszahlungRestApi = null;
Für nicht gemappte Felder bei Wareneingang-Import
- public static WATO_PX_Service.PXModels.EIN.Bestellung.Bestellung_Status pxZusBestellungStatusRestApi = null;
Für nicht gemappte Felder bei Stunden-Import
- public static WATO_PX_Service.PXModels.ZEI.ZEI_Stunden pxZusStundenRestApi = null;
Für nicht gemappte Felder bei Rapport-Import
- public static WATO_PX_Service.PXModels.STU.Rapporte.STU_Rapporte pxZusRapportRestApi = null;
für nicht gemappte Felder bei Dokument-Umwandlung-Import
- public static WATO_PX_Service.PXModels.AUF.Dokument.AUF_Dokumente pxZusUmwandlungDokumentRestApi = null;
- public static WATO_PX_Service.PXModels.AUF.Dokument.Position pxZusUmwandlungPositionRestApi = null;
Damit die Variabeln-Typen der DTOs im C# Script genutzt werden können, muss entweder in den globalen Einstellungen unter «C# Script» die DLL «WATO_PX_Service.dll» als «zusätzliche Assembly» hinzugefügt oder innerhalb des C# Scripts per «//import WATO_PX_Service.dll» am Anfang des Scriptes eingebunden werden.
Nachfolgend als Beispiel das C# Script zum Setzen des Felds "Unser Zeichen" bei der Dokument-Anlage
//import WATO_PX_Service.dll
using System;
using System.Text;
using System.Xml;
using System.Data;
using Intern = WATO.PxDocCreator.Globals.Func;
public class WATOCSharpScript
{
public static string Execute(DataRow row)
{
WATO_PX_Service.PXModels.AUF.Dokument.AUF_Dokumente dok = new WATO_PX_Service.PXModels.AUF.Dokument.AUF_Dokumente();
dok.UnserZeichen = "Test aus neuer Zusatzfeld-Feld-Logik";
WATO.PxDocCreator.Globals.Var.pxZusDokumentRestApi = dok;
return "";
}
}
HINWEIS: Um die IntelliSense-Unterstützung des C# Script Editors bei den DTOs nutzen zu können, sollte zunächst eine neue Instanz eines DTO Objektes erzeugt, in diesem die gewünschten Werte abgefüllt u. dann die globale Variable mit der Objekt-Instanz befüllt werden. Die direkte IntelliSense-Unterstützung im C# Script Editor für die statischen Variablen ist derzeit nicht möglich.