Barcodes per API in C/AL integrieren

Barcode-as-a-Service in C/AL

Daniel Gorski
Daniel Gorski 11. Januar 2021
2 Min. Lesezeit

The smartest way to manage your barcodes

#Barcodes für alle!

👉 www.beyondbarcodes.de bietet eine schnelle und sehr einfache Möglichkeit, eine Barcode-API zu implementieren.
👉 Wir wollen alle glücklich machen, die sich mit Barcodes herumschlagen müssen.
👉 Holen Sie sich einen Account und werden Sie Barcode-Millionär! Wir bieten >1.000.000 Aufrufe pro Monat.

Unsere Featureliste wächst, das Backlog ist voll, wir erweitern unseren Funktionsumfang laufend!

Barcode-Beispielbild API Integration in C/AL

In C/AL kann ein Barcode über unsere API angesprochen werden. Im folgenden Beispiel wird die Kred.-Artikelnr. als String übergeben, in einen Barcode (Code128) konvertiert und als Bild (Standard-Feld BLOB) am Artikel gespeichert.

Get-Barcode-Function

IF ('' IN [Item."Vendor Item No.", Item."No."]) THEN
 EXIT(FALSE);

method := STRSUBSTNO('%1/%2?token=%3&height=%4',
type::CODE128,
Item."Vendor Item No.",
'YOUR-TOKEN',
100
);
Consume('https://api.beyondbarcodes.de/v1/barcode/', method, 'GET', HttpResponseMessage);

MemoryStream := HttpResponseMessage.Content.ReadAsStreamAsync.Result;
Item.Picture.CREATEOUTSTREAM(OutStr);
MemoryStream.WriteTo(OutStr);
EXIT(Item.MODIFY);

Consume-Function

HttpClient := HttpClient.HttpClient();
HttpClient.BaseAddress := Uri.Uri(BaseUrl);
HttpResponseMessage := HttpClient.GetAsync(Method).Result;
HttpResponseMessage.EnsureSuccessStatusCode();

Hier steht die Codeunit 50000 als Implementationsbeispiel zum Download zur Verfügung:

C50000_C_AL.txt

OBJECT Codeunit 50000 Beyondbarcodes Webservice
{
OBJECT-PROPERTIES
{
Date=11.01.21;
Time=12:00:00;
Version List=beyondbarcodes.de;
}
PROPERTIES
{
TableNo=27;
OnRun=BEGIN
END;

}
CODE
{

    PROCEDURE GetBarcode@50001(VAR Item@50000 : Record 27) : Boolean;
    VAR
      method@50006 : Text;
      type@50005 : 'CODE128,CODE128A,CODE128B,CODE128C,CODE39,EAN13,EAN8,EAN5,EAN2,UPC';
      WebUtility@50004 : DotNet "'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Net.WebUtility";
      HttpResponseMessage@50003 : DotNet "'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.System.Net.Http.HttpResponseMessage";
      MemoryStream@50002 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.IO.MemoryStream";
      OutStr@50001 : OutStream;
    BEGIN
      IF ('' IN [Item."Vendor Item No.",Item."No."]) THEN
        EXIT(FALSE);

      method := STRSUBSTNO('%1/%2?token=%3&height=%4',
        type::CODE128,
        Item."Vendor Item No.",
        'YOUR-TOKEN',
        100
      );

      Consume('https://api.beyondbarcodes.de/v1/barcode/',method,'GET',HttpResponseMessage);

      MemoryStream := HttpResponseMessage.Content.ReadAsStreamAsync.Result;
      Item.Picture.CREATEOUTSTREAM(OutStr);
      MemoryStream.WriteTo(OutStr);
      EXIT(Item.MODIFY);
    END;

    [TryFunction]
    PROCEDURE Consume@50000(BaseUrl@50003 : Text;Method@50002 : Text;RestMethod@50001 : Text;VAR HttpResponseMessage@50000 : DotNet "'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.System.Net.Http.HttpResponseMessage");
    VAR
      HttpClient@50005 : DotNet "'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.System.Net.Http.HttpClient";
      Uri@50004 : DotNet "'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Uri";
    BEGIN
      HttpClient := HttpClient.HttpClient();
      HttpClient.BaseAddress := Uri.Uri(BaseUrl);
      HttpResponseMessage := HttpClient.GetAsync(Method).Result;
      HttpResponseMessage.EnsureSuccessStatusCode();
    END;

    BEGIN
    END.

}
}
beyondit
tech
Barcodes
API
C/AL
Business Central
Azure Communication Services SMTP with Scanner

Using Azure Communication Services SMTP with Your Scanner or Printer

Need to send scans via email from your office scanner? Azure Communication Services provides a reliable SMTP relay that works with any device supporting SMTP au

Weiter lesen
Weiter lesen
XRechnung Einrichtung in Business Central

XRechnung in Business Central einrichten: Schritt für Schritt zur E-Rechnung

Ab 2025 wird die E-Rechnung im B2B-Bereich in Deutschland Pflicht. Wir zeigen Ihnen, wie Sie XRechnung in Business Central einrichten – mit E-Beleg-Dienst, Work

Weiter lesen
Weiter lesen