Toevoegen RFID/Barcode via webservice

Via de Matrix.MxProject.WorkStation.Service is het mogelijk om barcodes/RFID's toe te voegen via een JSON post.
De barcodes/RFID's worden opgeslagen in het MatrixKozijn project. De waardes worden voor snel opzoeken ook toegevoegd aan de Matrix.Drive MongoDB database.

  • URI voor Barcodes
    http://localhost:8000/WorkStation/service/AddBarcodes
  • URI voor RFID's
    http://localhost:8000/WorkStation/service/AddRFIDS
  • Header:
    application/json

Vanaf build MatrixProject SP1 build 18432 is het ook mogelijk om de barcodes/RFID's toe te voegen via de Matrix.MxProject.WorkStation.Web service.
De data wordt automatisch door gestuurd naar de Matrix.MxProject.WorkStation.Service:

  • URI voor Barcodes
    http://localhost:1338/api/AddBarcodes
  • URI voor RFID's
    http://localhost:1338/api/AddRFIDS

 

De data voor de barcodes dient doorgegeven te worden als JSON objecten:

  • Value: waarde voor de barcode of RFID
  • Brand_Id: Het id van het merk in MatrixKozijn
  • SerieCode: De code van de serie/fase
  • JobNr: Het opdrachtnummer in de projecteigenschappen in MatrixKozijn
  • Mirrored: false = getekend merk, true = gespiegeld merk

Voorbeeld JSON

[
  {
    "Value": "B1112",
    "Brand_Id": 6,
    "SerieCode": "001",
    "JobNr": "2020_1002.A0001",
    "Mirrored": false
  },
  {
    "Value": "B2222",
    "Brand_Id": 7,
    "SerieCode": "001",
    "JobNr": "2020_1002.A0001",
    "Mirrored": false
  },
  {
    "Value": "B3332",
    "Brand_Id": 8,
    "SerieCode": "001",
    "JobNr": "2020_1002.A0001",
    "Mirrored": false
  },
  {
    "Value": "B4442",
    "Brand_Id": 9,
    "SerieCode": "001",
    "JobNr": "2020_1002.A0001",
    "Mirrored": true
  }
]

Voorbeeld C#

Een JSON post kan via vele programmeertalen gestuurd worden.

Hieronder een voorbeeld in C# (console app).

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Newtonsoft.Json.Linq;

namespace Matrix.Drive.Examples
{
    class Program
    {
        const string mes_service = "http://localhost:8000/WorkStation/service";

        static void Main(string[] args)
        {
            Console.WriteLine("Example adding RFID/Barcodes");

            Console.WriteLine("Adding RFID's via {0}", mes_service);
            _ = AddRfid_via_MES_Service();

            Console.WriteLine("Adding Barcodes's via {0}", mes_service);
            _ = AddBarcode_via_MES_Service();

            Console.WriteLine("Press any key to quit");
            Console.ReadKey();
        }

        static async Task AddRfid_via_MES_Service()
        {
            var j_rfids = new JArray
            {
                new JObject
                {
                    ["Value"] = "1111", // the RFID value
                    ["Brand_Id"] = 6, //The id of the brand in MatrixKozijn, Brand.Brand_ID
                    ["SerieCode"] = "001", //The Code of the serie/phase, Series.Code
                    ["JobNr"] = "2020_1002", // the project JobNr from MxK project file properties, ProjProp.JobNr
                    ["Mirrored"] = false, //false = normal brand type, true = mirrored brand type
                },
                new JObject
                {
                    ["Value"] = "2222", // the RFID value
                    ["Brand_Id"] = 7,
                    ["SerieCode"] = "001",
                    ["JobNr"] = "2020_1002", // the project JobNr from MxK project file properties
                    ["Mirrored"] = false,
                },
                new JObject
                {
                    ["Value"] = "3333", // the RFID value
                    ["Brand_Id"] = 8,
                    ["SerieCode"] = "001",
                    ["JobNr"] = "2020_1002", // the project JobNr from MxK project file properties
                    ["Mirrored"] = false,
                },
                new JObject
                {
                    ["Value"] = "4444", // the RFID value
                    ["Brand_Id"] = 9,
                    ["SerieCode"] = "001",
                    ["JobNr"] = "2020_1002", // the project JobNr from MxK project file properties
                    ["Mirrored"] = true,
                },
            };

            var url = $"{mes_service}/AddRFIDS";

            try
            {
                using (var wc = new WebClient())
                {
                    Console.WriteLine("Uri: {0}\nData: {1}", url, j_rfids.ToString());

                    wc.Headers.Add(System.Net.HttpRequestHeader.ContentType, "application/json");

                    await wc.UploadStringTaskAsync(url, j_rfids.ToString());
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        static async Task AddBarcode_via_MES_Service()
        {
            var j_barcodes = new JArray
            {
                new JObject
                {
                    ["Value"] = "B1111", // the barcode value
                    ["Brand_Id"] = 6, //The id of the brand in MatrixKozijn, Brand.Brand_ID
                    ["SerieCode"] = "001", //The Code of the serie/phase, Series.Code
                    ["JobNr"] = "2020_1002", // the project JobNr from MxK project file properties, ProjProp.JobNr
                    ["Mirrored"] = false, //false = normal brand type, true = mirrored brand type
                },
                new JObject
                {
                    ["Value"] = "B2222", // the barcode value
                    ["Brand_Id"] = 7,
                    ["SerieCode"] = "001",
                    ["JobNr"] = "2020_1002", // the project JobNr from MxK project file properties
                    ["Mirrored"] = false,
                },
                new JObject
                {
                    ["Value"] = "B3333", // the barcode value
                    ["Brand_Id"] = 8,
                    ["SerieCode"] = "001",
                    ["JobNr"] = "2020_1002", // the project JobNr from MxK project file properties
                    ["Mirrored"] = false,
                },
                new JObject
                {
                    ["Value"] = "B4444", // the barcode value
                    ["Brand_Id"] = 9,
                    ["SerieCode"] = "001",
                    ["JobNr"] = "2020_1002", // the project JobNr from MxK project file properties
                    ["Mirrored"] = true,
                },
            };

            var url = $"{mes_service}/AddBarcodes";

            try
            {
                using (var wc = new WebClient())
                {
                    Console.WriteLine("Uri: {0}\nData: {1}", url, j_barcodes.ToString());

                    wc.Headers.Add(System.Net.HttpRequestHeader.ContentType, "application/json");

                    await wc.UploadStringTaskAsync(url, j_barcodes.ToString());
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }
}

Voorbeeld cURL

Een JSON post kan bijvoorbeeld ook gedaan worden via de cURL command line tool: https://curl.haxx.se/windows/.

curl -H "Content-Type: application/json" -X POST --data-binary @body.json http://localhost:8000/WorkStation/service/AddBarcodes

Hierbij is de JSON data opgeslagen in het bestand body.json.

Let op: de @ voor de bestandsnaam is belangrijk voor een correcte werking van cURL.