MKG API CAD/CAM

Documentatie van veel gebruikte API aanroepen voor CAD/CAM API partners.

Getest op API V3 en MKG Versie 005.082.013.


Inhoudsopgave


Data dictionary
Voor informatie over endpoints, velden en acties check je het artikel API - Data Dictionary (Endpoints).

 

Postman
Voor voorbeelden van API-aanroepen check je het artikel API - Postman collectie.

 

Opvragen

 

Artikel zoeken

Wanneer een gebruiker handmatig naar artikelen in MKG wil zoeken kan de volgende GET request gebruikt worden om geleidelijk een lijst met mogelijkheden weer te geven. Vul bij Search het toe zoeken artikel in.

GET {{restUrl}}/Documents/arti

  • Filter: admi_num = {{admi_num}} AND arti_actief = true AND Search = "search text" 
  • FieldList: arti_code,arti_oms_1,arti_oms_2,arti_oms_3 
  • Sort: arti_code
  • NumRows: 10
{{restUrl}}/Documents/arti?Filter=admi_num = {{admi_num}} AND arti_actief = true AND Search = "search text"&FieldList=arti_code,arti_oms_1,arti_oms_2,arti_oms_3&Sort=arti_code&NumRows=10

 

Lijst met artikelen opvragen

Voor het opvragen van een lijst met artikelen kan de volgende aanroep gebruikt worden.
De API maakt gebruik van paginering. Er worden maximaal 100 regels in één aanroep aangeboden.

GET {{restUrl}}/Documents/arti

  • Filter: admi_num = {{admi_num}} AND arti_actief = true AND ...
  • FieldList: arti_code,arti_oms_1,arti_oms_2,arti_oms_3,... 
  • Sort: arti_code
  • NumRows: 100
  • SkipRows: 0
{{restUrl}}/Documents/arti?Filter=admi_num = {{admi_num}} AND arti_actief = true&FieldList=arti_code,arti_oms_1,arti_oms_2,arti_oms_3&Sort=arti_code&NumRows=100&SkipRows=0

 

Specifiek artikel opvragen

Voor het opvragen van een specifiek artikel zijn er twee mogelijkheden, namelijk met de primary key en met de rowkey. De rowkey komt bij elke GET request mee en is uniek in combinatie met het endpoint.

GET {{restUrl}}/Documents/arti/{{admi_num}}+{{arti_code}}

GET {{restUrl}}/Documents/arti/{{RowKey}}

  • FieldList: arti_code,arti_actief,arti_oms_1,arti_oms_2,arti_oms_3,arti_eenh_vrd,arti_stlh_num,... 
{{restUrl}}/Documents/arti/{{admi_num}}+{{arti_code}}?FieldList=arti_code,arti_actief,arti_oms_1,arti_oms_2,arti_oms_3,arti_eenh_vrd,arti_stlh_num

 

Specifieke stuklijst opvragen

De stuklijst header (stlh) bevat alleen het stuklijstnummer, de koppeling van een stuklijst met een artikel ligt op het eindproduct van de stuklijst. Aangezien een stuklijst maar 1 eindproduct kan hebben zal dit altijd stuklijstregel 1 zijn.

Tabelstructuur van een stuklijst:

stlh - Stuklijst header
- stlr - Eindproduct (stlr_num = 1)
-- stlm - Materialen
-- stlb - Bewerkingen
-- stlr - Halffabrikaten (stlr_parent = 1)
--- stlm - Materialen
--- stlb - Bewerkingen
--- stlr - Halffabrikaten (stlr_parent = ...)
---- enz...

GET  {{restUrl}}/Documents/stlr/{{admi_num}}+{{stlh_num}}+{{stlr_num}}

  • FieldList: stlh_num,stlh_num.stlh_actief,stlr_num,arti_code,stlr_oms_1,stlr_oms_2,stlr_oms_3
  {{restUrl}}/Documents/stlr/{{admi_num}}+{{stlh_num}}+{{stlr_num}}?FieldList=stlh_num,stlh_num.stlh_actief,stlr_num,arti_code,stlr_oms_1,stlr_oms_2,stlr_oms_3

 

Stuklijst materialen

Maakt gebruik van de verzameling van materialen op het endpoint van de stuklijst regel (stlr).

GET {{restUrl}}/Documents/stlr/{{admi_num}}+{{stlh_num}}+{{stlr_num}}/stlr_stlm

  • FieldList: stlm_num,arti_code,stlm_oms_1,stlm_oms_2,stlm_oms_3,stlm_aantal,stlm_eenh,... 
  • Sort: stlm_num
{{restUrl}}/Documents/stlr/{{admi_num}}+{{stlh_num}}+{{stlr_num}}/stlr_stlm?FieldList=stlh_num,stlh_num.stlh_actief,stlr_num,arti_code,stlr_oms_1,stlr_oms_2,stlr_oms_3

 

Aanmaken

 

Artikel aanmaken

Voor het aanmaken van artikelen maken we gebruik van profielen in MKG (artikel sjabloon). In de Artikel module kunnen meerdere profielen aangemaakt worden waarmee alle relevante informatie door MKG automatisch wordt gevuld.

Advies is om minimaal de volgende profielen in overleg met de MKG consultant aan te maken. Per geadviseerd profiel kunnen er meerdere varianten aangemaakt worden in verband met verschil in gewenste financiële afhandeling (inkoop/verkoop/voorraad groepen).

Profiel Artikel Inkoop Voorraad Kosten Na optimaliseren
7000 Inkoop voorraad gestuurd true true false Materiaal
7100 Inkoop order gestuurd true false false Materiaal
7200 Inkoop kosten true true true Materiaal
7300 Productie/verkoop voorraad gestuurd false true false Materiaal
7400 Productie/verkoop order gestuurd false false false Halffabrikaat
7999 Onbekend/default * * * *

 

Door het gebruik van profielen volstaat het opvoeren van de basis informatie.

POST {{restUrl}}/Documents/arti/?Profile={{profile_num}}

{{restUrl}}/Documents/arti/?Profile={{profile_num}}

Request body:

{
    "request": {
        "InputData": {
            "arti": [
                {
                    "admi_num": {{admi_num}},
                    "arti_code": "Article name",
                    "arti_oms_1": "Article decription",
"arti_oms_2": "Article decription",
"arti_oms_2": "Article decription"                 } ] } } }

 

VRM artikel aanmaken

Binnen MKG kan er ook gebruik gemaakt worden van VRM (Versnelde Reken Methode) artikelen.
Dit zijn artikelen waarbij op het artikel alle parameters en de handelslengte vastgelegd wordt, en op de stuklijst materiaal het verbruik kan worden opgegeven. 

Het advies is om VRM artikelen door de MKG gebruiker in MKG aan te laten maken en vervolgens over te nemen.
VRM artikelen zijn te herkennen aan dat het veld Formule (matf_num) op het artikel gevuld is.

 

Stuklijst header aanmaken

POST {{restUrl}}/Documents/stlh/

{{restUrl}}/Documents/stlh/

Request body:

{
    "request": {
        "InputData": {
            "stlh": [
                {
                    "admi_num": {{admi_num}},
                    "stlh_actief": true,
                    "stlh_memo": "Memo text"
                }
            ]
        }
    }
}

 

Stuklijst regel aanmaken

POST {{restUrl}}/Documents/stlr/

{{restUrl}}/Documents/stlr/

Request body:

{
    "request": {
        "InputData": {
            "stlr": [
                {
                    "admi_num": {{admi_num}},
                    "stlh_num": "{{stlh_num}}",
                  "arti_code": "{{arti_code}}"
              } ] } } }

 

Stuklijst materialen aanmaken

Voeg alle benodigde materialen toe aan de stuklijstregel

POST {{restUrl}}/Documents/stlr/{{admi_num}}+{{stlh_num}}+{{stlr_num}}/stlr_stlm

{{restUrl}}/Documents/stlr/{{admi_num}}+{{stlh_num}}+{{stlr_num}}/stlr_stlm

Request body:

{
    "request": {
        "InputData": {
            "stlm": [
                {
                    "arti_code": "{{arti_code}}",
                  "stlr_aantal": 1,
                  "eenh_code": "st."                 } ] } } }

 

Stuklijst VRM materialen aanmaken

Binnen MKG kan er ook gebruik gemaakt worden van VRM (Versnelde Reken Methode) artikelen.
Dit zijn artikelen waarbij op het artikel de handelslengte vastgelegd wordt, en op de stuklijst materiaal kan het verbruik opgegeven worden.

Bij VRM artikelen liggen alle parameters vast op het artikel. Bij het stuklijst materiaal kan de hoeveelheid en de benodigde lengte opgegeven worden.

POST {{restUrl}}/Documents/stlr/{{admi_num}}+{{stlh_num}}+{{stlr_num}}/stlr_stlm

{{restUrl}}/Documents/stlr/{{admi_num}}+{{stlh_num}}+{{stlr_num}}/stlr_stlm

Request body:

{
    "request": {
        "InputData": {
            "stlm": [
                {
                    "arti_code": "{{arti_code}}",
                  "stlr_aantal": 1,
                  "eenh_code": "st.",
                  "stlm_lengte": "100", // De lengte is altijd in milimeter
                  "stlm_behoefte_obv": 3 // Behoefte op basis van product lengte en handelslengte (PL/HL)                 } ] } } }

 

Optimaliseren stuklijst uitvoeren

De service Optimaliseren stuklijst brengt gelaagdheid aan in de stuklijst waar dit van toepassing is. Dit is bepalend voor de behoeftebepaling in het productieproces.

Advies gebruik optimaliseren stuklijst:
[x] Optimaliseer alleen geselecteerde stuklijst
HF: 
[x] Voorraad gestuurde artikelen opnemen als materiaal
[x] Inkoop artikelen opnemen als materiaal
[x] Artikel met actieve stuklijst als verwijzing opnemen
Materiaal:
[x] Artikelen die order gestuurd zijn, opnemen als halffabricaat

PUT {{restUrl}}/Documents/stlh/{{admi_num}}+{{stlh_num}}/Service/s_optimize_partlist

{{restUrl}}/Documents/stlh/{{admi_num}}+{{stlh_num}}/Service/s_optimize_partlist

Request body:

{
    "request": {
        "InputData": {
            "stlh": [
                {
                    "RowKey" : 1,                      // Fixed value, do not remove
                    // Bill of material
                    "t_opt_stlh": true,                // Optimise selected bill of materials only (Note! If FALSE, ALL bill of materials are optimised)
                    "t_opt_stlh_actief_arti": false,   // Make items used in bills of materials active if bill of materials is active
                    "t_opt_stlh_actief_stlh": false,   // Make bills of materials referenced in the bill of materials active if the bill of materials is active
                    "t_opt_stlh_arti_vrd_min": false,  // Adjust minimum stock of used items
                    "t_opt_stlh_formules": false,      // Bill of materials with formulas also optimised
 
                    // Sub-Assemblies
                    "t_opt_half_vrd": true,           // Stocked items recorded as material
                    "t_opt_half_ink": true,            // Include purchase items as materials
                    "t_opt_half_verw": true,           // Include article with active bill of materials as a reference
                    "t_opt_half_opnemen": false,       // Include all references in bill of materials
                    "t_opt_half_oms": false,           // Update descriptions and memos based on the article (incl. translations)
                    "t_opt_half_arti_oms": false,      // Updating descriptions and memos of inactive articles
                    "t_opt_half_formules_mat": false,  // Include as material, copy contents of formulas
 
                    // Materials
                    "t_opt_mat": true,                 // Include items that are order-driven as sub-assemblies
                    "t_opt_mat_vrd": false,            // Record items that are stock-driven as sub-assemblies
                    "t_opt_mat_oms": false,            // Update descriptions and memos based on the article (incl. translations)
                    "t_opt_mat_arti_oms": false,       // Updating descriptions and memos of inactive articles
                    "t_opt_mat_formules_half": false,  // Record as sub-assemblies, copy contents of formulas
                    "t_opt_spec": false,               // Redefining specifications
 
                    // Parameters
                    "t_opt_parm_std": false,           // fill formula fields based on default parameters
                    "t_opt_parm_verwijderen": false,   // Remove parameters that are not used
 
                    // Collecting operations
                    "t_opt_bew_verz": 0,               // Collect operations (0 = Not, 1 = Semi-manufactured, 2 = Finished product)
                    "t_opt_bew_list": ""                // Operations (Operation numbers separated by ";")
                }
            ]
        }
    }
}

 

Documenten koppelen

Om een documentlink aan te maken in MKG dient de service s_add_document op het betreffende endpoint toegevoegd te worden. Bij de Key dienen alle velden van de primary key puntkomma gescheiden aangeboden te worden. Het koppelen van een categorie is optioneel, maar wel wenselijk. 
Het advies is minimaal 1 categorie aan te maken waar altijd alleen de meest recente documenten in beschikbaar zijn. Deze kunnen indien wenselijk bij het inkopen automatisch meegestuurd worden.

PUT {{restUrl}}/Documents/arti/x/Service/s_add_document

  • Key: {{admi_num}};{{arti_num}}
  • File: C:/path/to/the.file
  • Description: Description text
  • Categories: {{dcat_num}},{{dcat_num}} 
{{restUrl}}/Documents/arti/x/Service/s_add_document?Key={{admi_num}};{{arti_num}}&File=C:/path/to/the.file&Description=Description text&Categories={{dcat_num}},{{dcat_num}} 

 

Revisie doorvoeren

In de administratie dient de proces nummering voor revisies ingericht te zijn.

 

Revisie aanmaken

Met onderstaande aanroep kopieert MKG de stuklijst naar een nieuwe revisie waarbij de halffabrikaten en materialen niet mee worden genomen.

PUT {{restUrl}}/Documents/stlh/{{admi_num}}+{{stlh_num}}/Service/s_create_revision

Request body:

{
    "request": {
        "InputData": {
            "PartListRevision": [
                {
                    "RowKey": 1,                              // Fixed value, do not remove
                    "t_half": false,                          // Copy Sub-assemblies
                    "t_mat": false,                           // Copy Matterials
                    "t_uit": true,                            // Copy Outsourcing
                    "t_bew": true,                            // Copy Operations
                    "t_arti": false                           // Create item
                }
            ]
        }
    }
}

 

Stuklijst materialen opvoeren

Zie: Stuklijst materialen aanmaken

 

Stuklijst optimaliseren

Zie: Optimaliseren stuklijst uitvoeren

 

Artikel revisie aanpassen

Het nieuwe revisienummer dient op het artikel opgevoerd te worden.

PUT {{restUrl}}/Documents/arti/{{admi_num}}+{{arti_code}}

{{restUrl}}/Documents/arti/{{admi_num}}+{{arti_code}}

Request body:

{
    "request": {
        "InputData": {
            "arti": [
                {
                    "arti_revisie": "Artikel revisienummer"
                }
            ]
        }
    }
}

 

Revisie doorvoeren op actieve stuklijsten

Na het doorvoeren van een revisie op een artikel, dient dit revisienummer op alle actieve stuklijsten aangepast te worden. Dit kan met onderstaande aanroep.

PUT {{restUrl}}/Documents/arti/{{admi_num}}+{{arti_code}}/s_recalc_revisie

{{restUrl}}/Documents/arti/{{admi_num}}+{{arti_code}}/s_recalc_revisie

Request body:

{
    "request": {
        "InputData": {
            "PartListRevision": [
                {
                  "RowKey": "x",
                  "t_eind": "true",      // Change assemblies revision
                  "t_half": "true",      // Change sub-assemblies revision
                    "t_mat": "true"        // Change material revision
                }
            ]
        }
    }
}