Einen XMLport mithilfe von Ausschnitten in Visual Studio Code erstellen
Sie können den Ausschnitt txmlport verwenden, der eine Vorlagenstruktur generiert, die Sie an Ihre Bedürfnisse anpassen können, um einen XMLport im Visual Studio Code zu erstellen.
Ein XMLport enthält zwei Abschnitte mit den Namen Schema und Anforderungsseite. Im Abschnitt Schema können Sie die Struktur Ihres XMLport definieren. Sie können Textelement, Tabellenelement, Feldelement oder Feldattribut verwenden, um die Knoten zu definieren. Im Abschnitt Anforderungsseite können Sie das Layout und die Aktionen für die Seite definieren, die dem Benutzer angezeigt wird, wenn ein XMLport ausgeführt wird. Sie können dieselbe Layoutdefinition wie eine Kartenseite verwenden.
Mit dem XML-Format arbeiten
Das folgende Codebeispiel enthält Informationen dazu, wie Sie mit dem XML-Format arbeiten können, indem Sie Visual Studio Code und die Programmiersprache AL verwenden.
xmlport 50100 MyXmlport
{
Caption = 'Export Contacts to XML';
Direction = Export;
Format = Xml;
UseRequestPage = false;
DefaultFieldsValidation = true;
schema
{
textelement(Contacts)
{
XmlName = 'Contacts';
tableelement(Contact; Contact)
{
RequestFilterFields = "No.";
XmlName = 'Contact';
fieldattribute(No; Contact."No.")
{
}
fieldattribute(ExternalID; Contact."External ID")
{
}
fieldelement(Name; Contact.Name)
{
}
fieldelement("E-Mail"; Contact."E-Mail")
{
}
fieldelement(HomePage; Contact."Home Page")
{
}
textelement(Company)
{
XmlName = 'Company';
fieldattribute(CompanyNo; Contact."Company No.")
{
}
fieldelement(CompanyName; Contact."Company Name")
{
}
}
}
}
}
requestpage
{
layout
{
area(content)
{
}
}
actions
{
area(processing)
{
}
}
}
}
Mit festem Textformat arbeiten
Wenn Sie den XMLport zur Nutzung des Formats FixedText konfigurieren, stellen Sie sicher, dass Sie die Eigenschaft Width für jeden Knoten im XMLport festlegen. Ein Beispiel zum Ausführen dieser Aktion finden Sie im folgenden Codebeispiel.
xmlport 50100 MyXmlport
{
Caption = 'Export Contacts to Fixed Text';
Direction = Export;
Format = FixedText;
TextEncoding = UTF8;
UseRequestPage = false;
schema
{
textelement(Contacts)
{
tableelement(Contact; Contact)
{
RequestFilterFields = "No.";
fieldelement(No; Contact."No.")
{
Width = 10;
}
fieldelement(ExternalID; Contact."External ID")
{
Width = 10;
}
fieldelement(Name; Contact.Name)
{
Width = 20;
}
fieldelement("E-Mail"; Contact."E-Mail")
{
Width = 50;
}
fieldelement(HomePage; Contact."Home Page")
{
Width = 50;
}
fieldelement(CompanyNo; Contact."Company No.")
{
Width = 10;
}
fieldelement(CompanyName; Contact."Company Name")
{
Width = 20;
}
}
}
}
}
Mit variablem Textformat arbeiten
Bei der Konfiguration des XMLport, um das Format VariableText zu verwenden, können Sie FieldSeparator nutzen, um die Zeichenfolge zum Trennen von Feldern anzugeben. Der Standardwert ist ein Komma (,).
<None> – Keine Feldbegrenzung
<NewLine>: Kombination von CR‑ und LF-Zeichen
<CR/LF>: Zuerst CR, gefolgt von LF
<CR>: ASCII value 13
<LF>: ASCII value 10
<Tab>: Eine Registerkarte verwenden, um die Felder zu trennen
Andere Zeichenfolgen: Die eingegebene Literalzeichenfolge
xmlport 50100 MyXmlport
{
Caption = 'Export Contacts to XML';
Direction = Export;
Format = VariableText;
FieldSeparator = ',';
TextEncoding = UTF8;
...
}
Die Eigenschaft RecordSeparator gibt an, was am Ende eines Datensatzes geschehen soll. Sie hat die gleichen Werte wie die Eigenschaft FieldSeparator. Der Standardwert ist <NewLine>.
xmlport 50100 MyXmlport
{
Caption = 'Export Contacts to XML';
Direction = Export;
Format = VariableText;
FieldSeparator = ',';
RecordSeparator = '<NewLine>';
TextEncoding = UTF8;
...
}
Die Eigenschaft FieldDelimiter wird verwendet, um die Zeichenfolge festzulegen, mit der ein Feld begrenzt wird.
xmlport 50100 MyXmlport
{
Caption = 'Export Contacts to XML';
Direction = Export;
Format = VariableText;
FieldSeparator = ',';
FieldDelimiter = '"';
TextEncoding = UTF8;
...
}
Wenn Sie Daten aus verschiedenen Tabellen in Business Central abrufen und diese in einem XMLport verwenden möchten, können Sie das Feld TableSeparator verwenden, um verschiedene Sätze von Knoten zu erhalten.
Ein typisches Beispiel für verschiedene Datenquellen in einem XMLport ist der Fall, wenn Sie eine Textdatei mit einer Kopfzeile importieren oder exportieren möchten. Sie können die Tabelle Ganzzahl verwenden, um eine Kopfzeile zu erstellen und dann die Eigenschaft TableSeparator zum Trennen der beiden Tabellenelemente verwenden. Die Funktion OnBeforePassVariable wird verwendet, um die Beschriftung eines Felds abzurufen, und Sie können diese Beschriftung als Überschrift im Textdokument verwenden.
xmlport 5050 "Export Contact"
{
Caption = 'Export Contact';
Direction = Export;
Format = VariableText;
TableSeparator = '<NewLine>';
TextEncoding = UTF8;
UseRequestPage = false;
schema
{
textelement(Root)
{
tableelement(Integer; Integer)
{
XmlName = 'ContactHeader';
SourceTableView = sorting(Number) where(Number = const(1));
textelement(ContNoTitle)
{
trigger OnBeforePassVariable()
begin
ContNoTitle := Contact.FieldCaption("No.");
end;
}
textelement(ContNameTitle)
{
trigger OnBeforePassVariable()
begin
ContNameTitle := Contact.FieldCaption(Name);
end;
}
textelement("ContE-MailTitle")
{
trigger OnBeforePassVariable()
begin
"ContE-MailTitle" := Contact.FieldCaption("E-Mail");
end;
}
}
tableelement(Contact; Contact)
{
RequestFilterFields = "No.";
XmlName = 'Contact';
fieldelement(No; Contact."No.")
{
}
fieldelement(Name; Contact.Name)
{
}
fieldelement("E-Mail"; Contact."E-Mail")
{
}
}
}
}
}