Skip to content
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
GoBD-konforme Archivierung mit Business Central und SharePoint ohne DMS

Architektur

Revisionssicher archivieren ohne DMS? Wie weit Business Central, SharePoint und Azure Blob Storage wirklich tragen

Warum „GoBD" oft vorschnell zum K.O.-Kriterium wird – und wie weit Business Central, SharePoint und Azure Blob Storage wirklich tragen.

Read More: Revisionssicher archivieren ohne DMS? Wie weit Business Central, SharePoint und Azure Blob Storage wirklich tragen
Read More: Revisionssicher archivieren ohne DMS? Wie weit Business Central, SharePoint und Azure Blob Storage wirklich tragen
Modulare ERP-Architektur für skalierbare Unternehmenssoftware

Architektur

Mehr als nur Warenwirtschaft - die Landtechnik Lösung

ERP-Systeme wurden jahrelang als Monolithen verkauft. Die eigentliche Stärke moderner Plattformen wie Business Central liegt jedoch in der Modularität - und gen

Read More: Mehr als nur Warenwirtschaft - die Landtechnik Lösung
Read More: Mehr als nur Warenwirtschaft - die Landtechnik Lösung