I hear you saying - That's just don't make sense... Unless you are integrating JDE with JDE, you are right - as every integration has 2 end points and therefore one of them beyond JDE.
I guess what I want to talk about in this blog post is thinking more broadly about how you solve JD Edwards integration challenges. I'm going to talk specifically on how fusion5 uses a bicep based integration acceleration infrastructure as code to enable quick and easy integration beyond JDE. I think it's important to think about your integrations beyond JDE and into what we might have traditionally called middleware.
Middleware is a good term for a consistent set of development tools between two or more systems... Therefore giving you a consistent method of connecting end points, monitoring integrations and stitching things together. This middleware has always been dominated by the likes of MuleSoft, Boomi, Jitterbit and other players... Although I think that there is a paradigm shift going on at the moment. What I am seeing is that more and more customers are using the native cloud services that Azure and AWS provide and build their "middleware" using native cloud services. I believe that the following drives this decision:
- Cost - put simply you can pay per use and there is not large barrier to get started. You can get started nice and slow and build out the solution
- Access to talent. Getting a developer that knows lambda (JS / python) or Azure functions is easier and can be applied to more situations than a dedicated middleware developer
- All modern endpoints are open. Quite often new applications are built on a foundation of API's that they stick a front end on. Therefore integration is not an afterthought, its actually built into the foundational architecture. This means that connecting to said "Foundational architecture" is also easy and well documented. restful saves us a lot of work
- connectors can be seen as a list of limitations. Too many integration development tasks has lead me to believe that more often than not - an accelerator does not do what a customer wants. It generally needs to be augmented or changed to get the job done. Therefore, reading point 3 above - end points have this built in
- Supports ideals of smart end points, dumb pipes. Think about JDE specifically and the orchestration studio. This makes VERY smart end points, which can then be plugged into dumb pipes. The JDE orchestrations take into consideration security, logic and customisations to present an API which can "do it all".
- Support for WAF / additional end point security
- Connectivity / HA / DR all built into the platform
- Security patching is native and often
- Logging and monitoring (think Azure monitor, think CloudWatch) can follow enterprise standards - critical for integrations and they are becoming more important that humans. I don't want to trivialise your existence - but, I reckon that an integration can pump through more orders than a human any day of the week. Therefore due to the importance logging and monitoring must be a first class citizen.
Host: apim-poc-tatua-demo-f5dev-0001.azure-api.net
Ocp-Apim-Subscription-Key: <Place subscription key here>
We can see all of the performance and availability information above, this is critical for providing a consistent service to your customers.
We start the integration, check GUIDs etc. Make sure that this is not a duplicate. Note that this function is included in the framework.
21/11/2023 09:26:23 JDV920: Conversation Status Updated to P : Processing
21/11/2023 09:26:24 JDV920: Conversation Process Status Updated to 105 : Orchestration Processing
21/11/2023 09:26:24 JDV920: Conversation Process Status Updated to 110 : Orchestration INT Process called, Asychronously
21/11/2023 09:26:24 JDV920: Started : ORCH_INT_GetItemAvailabilityProcessor
21/11/2023 09:26:24 JDV920: Started : ORCH_INT_GetItemAvailability
21/11/2023 09:26:24 JDV920: Item Availability Retrieved for Item 1001
21/11/2023 09:26:25 JDV920: End : ORCH_INT_GetItemAvailability
21/11/2023 09:26:25 JDV920: Conversation Status Updated to Y : Success
21/11/2023 09:26:25 JDV920: Conversation Process Status Updated to 400 : Orchestration Successful
21/11/2023 09:26:25 JDV920: End : ORCH_INT_GetItemAvailabilityProcessor
21/11/2023 09:26:25 JDV920: End : ORCH_EXT_GetItemAvailability
Text Attachment
"outShortItemNumber": "60003",
"outBranchPlant": "*",
"outItemNumber": "1001",
"ItemAvailability": [
{
"outBranchPlant": "10",
"outLotSerial": "",
"outOnHand": "3.9000-",
"outAvailable": "3.9000-",
"outLocation": ". .",
"outLotStatusCode": "",
"outCommitted": "0.0000",
"outSOWOSoftCommit": "0.0000",
"outSOHardCommit": "0.0000",
"outBackorder": "0.0000",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "10",
"outLotSerial": "",
"outOnHand": "3.9000-",
"outAvailable": "3.9000-",
"outLocation": "TOTAL:",
"outLotStatusCode": "",
"outCommitted": "0.0000",
"outSOWOSoftCommit": "0.0000",
"outSOHardCommit": "0.0000",
"outBackorder": "0.0000",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "30",
"outLotSerial": "",
"outOnHand": ".0350",
"outAvailable": ".0178",
"outLocation": ". .",
"outLotStatusCode": "",
"outCommitted": ".0172",
"outSOWOSoftCommit": ".0003",
"outSOHardCommit": ".0169",
"outBackorder": ".0001",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "30",
"outLotSerial": "",
"outOnHand": ".0350",
"outAvailable": ".0178",
"outLocation": "TOTAL:",
"outLotStatusCode": "",
"outCommitted": ".0172",
"outSOWOSoftCommit": ".0003",
"outSOHardCommit": ".0169",
"outBackorder": ".0001",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "70",
"outLotSerial": "",
"outOnHand": ".0100",
"outAvailable": ".0100",
"outLocation": "",
"outLotStatusCode": "",
"outCommitted": "0.0000",
"outSOWOSoftCommit": ".0063",
"outSOHardCommit": "0.0000",
"outBackorder": "0.0000",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "70",
"outLotSerial": "",
"outOnHand": ".0100",
"outAvailable": ".0100",
"outLocation": "TOTAL:",
"outLotStatusCode": "",
"outCommitted": "0.0000",
"outSOWOSoftCommit": ".0063",
"outSOHardCommit": "0.0000",
"outBackorder": "0.0000",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "D30",
"outLotSerial": "",
"outOnHand": ".1000",
"outAvailable": ".1000",
"outLocation": ". . .",
"outLotStatusCode": "",
"outCommitted": "0.0000",
"outSOWOSoftCommit": "0.0000",
"outSOHardCommit": "0.0000",
"outBackorder": "0.0000",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "D30",
"outLotSerial": "",
"outOnHand": ".1000",
"outAvailable": ".1000",
"outLocation": "TOTAL:",
"outLotStatusCode": "",
"outCommitted": "0.0000",
"outSOWOSoftCommit": "0.0000",
"outSOHardCommit": "0.0000",
"outBackorder": "0.0000",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "M30",
"outLotSerial": "",
"outOnHand": "0.0000",
"outAvailable": "1.0000-",
"outLocation": ". .",
"outLotStatusCode": "",
"outCommitted": "1.0000",
"outSOWOSoftCommit": "0.0000",
"outSOHardCommit": "0.0000",
"outBackorder": "0.0000",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "M30",
"outLotSerial": "",
"outOnHand": "0.0000",
"outAvailable": "1.0000-",
"outLocation": "TOTAL:",
"outLotStatusCode": "",
"outCommitted": "1.0000",
"outSOWOSoftCommit": "0.0000",
"outSOHardCommit": "0.0000",
"outBackorder": "0.0000",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "7600",
"outLotSerial": "",
"outOnHand": "0.0000",
"outAvailable": "0.0000",
"outLocation": "P",
"outLotStatusCode": "",
"outCommitted": "0.0000",
"outSOWOSoftCommit": "0.0000",
"outSOHardCommit": "0.0000",
"outBackorder": "0.0000",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "7600",
"outLotSerial": "",
"outOnHand": "0.0000",
"outAvailable": "0.0000",
"outLocation": "TOTAL:",
"outLotStatusCode": "",
"outCommitted": "0.0000",
"outSOWOSoftCommit": "0.0000",
"outSOHardCommit": "0.0000",
"outBackorder": "0.0000",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
},
{
"outBranchPlant": "",
"outLotSerial": "",
"outOnHand": "3.7550-",
"outAvailable": "4.7722-",
"outLocation": "GRAND TOTAL:",
"outLotStatusCode": "",
"outCommitted": "1.0172",
"outSOWOSoftCommit": ".0066",
"outSOHardCommit": ".0169",
"outBackorder": ".0001",
"outFutureCommit": "0.0000",
"outOnSOOther1": "0.0000",
"outOnSOOther2": "0.0000"
}
],
"out_ErrorFlag": "0"
}
No comments:
Post a Comment