ERP Sap REST

Documenti Condivisi:

api_s4_production_order.pdf

Tabella di conversione campi SAP (java) con il modello REST :

oee_s4_integration_mapping.xlsx

il protocollo Rest utilizza Oauth2 quindi le trasmissioni sono attraverso un token, in questo caso và mandato nella header; è di tipo Bearer quindi prevede una chiave fissa "Bearer" prima del Token

il Token ha una validità descritta nel campo expire_in al momento dell'arrivo del token:

la curl per richiedere il token ha questa forma:

#token curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=client_credentials&client_id=API&client_secret=SECRET" https://franke.prod.apimanagement.eu10.hana.ondemand.com/OAuthService/GenerateToken #rueck curl --request GET 'https://franke.prod.apimanagement.eu10.hana.ondemand.com/a88a/NEXTOEE/API_PROD_ORDER/ProductionOrder/1000001' --header 'APIKey: API' --header 'Authorization: Bearer TOKEN' #flashback curl --request POST 'https://franke.prod.apimanagement.eu10.hana.ondemand.com:443/a88a/NEXTOEE/API_PROD_ORDER/ConfirmProductionOrder/1000007' --header 'APIKey: API' --header 'Authorization: Bearer TOKEN' --header 'Content-Type: application/json' --data-raw '{ "ConfirmationDate": "2022-01-24T00:00:00","ManufacturingOrder": "1000007", "YieldQuantity": "0", "ProductionUnit": "PC", "FinalConfirmatio

Utilizzare Postman per il debug; e caricare prendere le curl

<?xml version="1.0" encoding="UTF-8"?> <!-- Document : etnconfig.xml Created on : 2 febbraio 2005, 18.30 Author : BERGANTINO Nicola Description: Purpose of the document follows. --> <xnetagents> <agents> <!-- ... --> <!--Agente gestisce l'inserimento degli ordini di produzione, degli articoli e del tempo ciclo dei prodotti--> <agent lib="/usr/lib/libgtrace.so.0.0.0" create="agentInsOp" live="1" name="insop"> <param name="agdb" value="tpevodb" /> <param name="agsm" value="simpmovi" /> </agent> <agent lib="/usr/lib/libniserp.so.0.0.0" create="agentRestSAP" live="1" name="sapnis"> <param name="agdb" value="tpevodb" /> <param name="agop" value="insop" /> <param name="urlpref" value="https://franke.prod.apimanagement.eu10.hana.ondemand.com" /> <param name="urlget" value="/a88a/NEXTOEE/API_PROD_ORDER/ProductionOrder" /> <param name="urlpost" value="/a88a/NEXTOEE/API_PROD_ORDER/ConfirmProductionOrder" /> <param name="bearer" value="Bearer" /> <param name="api" value="7SggN0ISNOxAaCCckiojO3yRGRAGIrpK" /> <param name="secret" value="hcHcczWs23n3Eku2" /> </agent> </agents> </xnetagents>

gestione ConfirmationGroup

La tabella sapinfoubi prende infomazioni riguardo il rueck (codop) e postazione (postazione) da inviare con il metodo POST per il Flashing Back

--- drop table sapinfoubi CREATE TABLE public.sapinfoubi ( codop CHARACTER VARYING(51) NOT NULL, codubi CHARACTER VARYING(51) NOT NULL, confgrp CHARACTER VARYING(51), ordope CHARACTER VARYING(51) ); COMMENT ON TABLE public.sapinfoubi IS 'Tabella informazioni codop-codubi arrivate da SAP'; COMMENT ON COLUMN public.sapinfoubi.codop IS 'Rueck Ricevuto da sap'; COMMENT ON COLUMN public.sapinfoubi.codubi IS 'codice postaizone'; COMMENT ON COLUMN public.sapinfoubi.confgrp IS 'ConfirmationGroup da inviare con il flashingback'; COMMENT ON COLUMN public.sapinfoubi.ordope IS 'OrderOperation da inviare con il flashingback'; ALTER TABLE ONLY public.sapinfoubi ADD CONSTRAINT sapinfoubi_pkey PRIMARY KEY (codop, codubi); ALTER TABLE ONLY public.sapinfoubi ADD CONSTRAINT ix_sapinfoubi_codop FOREIGN KEY (codop) REFERENCES public.ordprod(codop) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE ONLY public.sapinfoubi ADD CONSTRAINT ix_sapinfoubi_codubi FOREIGN KEY (codubi) REFERENCES public.ubicaz(codice) ON UPDATE CASCADE ON DELETE CASCADE;

Crezione API

Generazione API, Avere Get a SAP Universal ID se manca crearlo dalla schermata di accesso

Una volta entrato da questo link:
https://frankeisprod.apibhubenterprise.cfapps.eu10.hana.ondemand.com/product/PRD_NEXTOEE
Creare una nuova app:
Usare queste nell'agente Rest (AgentRestSAP)

data: 9Xk4AXIImYIUYNGd

u4pAAeVFyLmOjR0kNlbmp2qAfqgAhuH3