{
  "productInfo" : {
    "company" : "HighByte",
    "product" : "IntelligenceHub",
    "version" : "4.1.4",
    "build" : "2025.6.11.1",
    "stage" : "Release"
  },
  "project" : {
    "version" : 10,
    "connections" : [ {
      "name" : "MsiMessages",
      "uri" : "jdbc.sqlite://sQLite",
      "tags" : [ "PAS_X_MSI" ],
      "writes" : {
        "flattenModeledValues" : false
      },
      "subscriptions" : { },
      "storeForward" : {
        "enabled" : false,
        "maxEntries" : 100,
        "waitOnFailureInterval" : {
          "duration" : 1,
          "units" : "Seconds"
        }
      },
      "settings" : {
        "database" : "..\\appData\\MsiMessages.db"
      }
    }, {
      "name" : "MsiRESTClient",
      "uri" : "rest.client://MSIRestClient",
      "tags" : [ "PAS_X_MSI" ],
      "writes" : {
        "flattenModeledValues" : false
      },
      "subscriptions" : { },
      "storeForward" : {
        "enabled" : false,
        "maxEntries" : 100,
        "waitOnFailureInterval" : {
          "duration" : 1,
          "units" : "Seconds"
        }
      },
      "settings" : {
        "authentication" : {
          "type" : "OAuth 2.0",
          "options" : {
            "grantType" : "password",
            "clientAuthenticationType" : "header",
            "loginURL" : "http://localhost:9000/getAccessToken",
            "username" : "user",
            "password" : {
              "type" : "Encrypted",
              "value" : {
                "keyId" : "yBunz33bzGdDWmehuwuouw==",
                "iv" : "wpyaNYiAUBFjNgk8U8j2Pg==",
                "ciphertext" : "RcYg6t2Q3QVfyxy06rXbDA=="
              }
            }
          }
        },
        "baseURL" : "http://localhost:9000"
      }
    } ],
    "inputs" : [ {
      "name" : "ClosedOrderParameterMessages",
      "connection" : "MsiMessages",
      "type" : "jdbc.sqlite",
      "qualifier" : {
        "query" : "select * from Messages where Status = 'Closed'"
      },
      "cacheLifetime" : {
        "enabled" : false
      },
      "template" : {
        "type" : "Off"
      }
    }, {
      "name" : "DeleteAllMessages",
      "connection" : "MsiMessages",
      "type" : "jdbc.sqlite",
      "qualifier" : {
        "query" : "delete from Messages"
      },
      "cacheLifetime" : {
        "enabled" : false
      },
      "template" : {
        "type" : "Off"
      }
    }, {
      "name" : "DeleteOrderParameterMessages",
      "connection" : "MsiMessages",
      "type" : "jdbc.sqlite",
      "qualifier" : {
        "query" : "delete from Messages where _id = {{this._id}}"
      },
      "cacheLifetime" : {
        "enabled" : false
      },
      "template" : {
        "type" : "Off"
      }
    }, {
      "name" : "ErrorOrderParameterMessages",
      "connection" : "MsiMessages",
      "type" : "jdbc.sqlite",
      "qualifier" : {
        "query" : "select * from Messages where status = 'Error'"
      },
      "cacheLifetime" : {
        "enabled" : false
      },
      "template" : {
        "type" : "Off"
      }
    }, {
      "name" : "InProcessOrderParameterMessages",
      "connection" : "MsiMessages",
      "type" : "jdbc.sqlite",
      "qualifier" : {
        "query" : "select * from Messages where Status = 'Inprocess' ORDER BY _timestamp "
      },
      "cacheLifetime" : {
        "enabled" : false
      },
      "template" : {
        "type" : "Off"
      }
    }, {
      "name" : "OpenOrderParameterMessages",
      "connection" : "MsiMessages",
      "type" : "jdbc.sqlite",
      "qualifier" : {
        "query" : "select * from Messages where Status = 'Open' ORDER BY _timestamp LIMIT 1"
      },
      "cacheLifetime" : {
        "enabled" : false
      },
      "template" : {
        "type" : "Off"
      }
    }, {
      "name" : "SelectAllMessages",
      "connection" : "MsiMessages",
      "type" : "jdbc.sqlite",
      "qualifier" : {
        "query" : "select * from Messages"
      },
      "cacheLifetime" : {
        "enabled" : false
      },
      "template" : {
        "type" : "Off"
      }
    }, {
      "name" : "SelectByBatchId",
      "connection" : "MsiMessages",
      "type" : "jdbc.sqlite",
      "qualifier" : {
        "query" : "select * from Messages\nwhere Status = 'Open' and MsiMessageContainer_message_MsiOrderParameterMessage_BatchId_value = 'VT002898' ORDER BY _timestamp LIMIT 1"
      },
      "cacheLifetime" : {
        "enabled" : false,
        "interval" : {
          "duration" : 1,
          "units" : "Seconds"
        }
      },
      "template" : {
        "type" : "Off"
      }
    } ],
    "outputs" : [ {
      "name" : "PostMessage",
      "connection" : "MsiRESTClient",
      "type" : "rest.client",
      "qualifier" : {
        "method" : "POST",
        "bodyType" : "raw",
        "breakupArrays" : false,
        "endpointURL" : "/PostMessage",
        "template" : "${value[1..value?length - 2]}",
        "header" : [ {
          "name" : "Content-Type",
          "value" : "application/xml"
        } ]
      }
    } ],
    "modeling" : {
      "models" : [ {
        "name" : "MsiOrderParameterMessage",
        "tags" : [ "PAS_X_MSI" ],
        "attributes" : [ {
          "attributeType" : "Object",
          "name" : "MsiOrderParameterMessage",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "attributes" : [ {
            "attributeType" : "Internal",
            "name" : "messageInstanceId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "direction",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "messageId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "supplierId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "deviceTypeId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "supplierVersion",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Real64"
          }, {
            "attributeType" : "Internal",
            "name" : "functionalId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "orderContext",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "creationTime",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Modeled",
            "name" : "BatchNo",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "model" : "ParameterString"
          }, {
            "attributeType" : "Modeled",
            "name" : "DeviceNo",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "model" : "ParameterString"
          }, {
            "attributeType" : "Modeled",
            "name" : "Weight",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "model" : "ParameterFloat"
          } ]
        } ]
      }, {
        "name" : "ParameterDateTime",
        "tags" : [ "PAS_X_MSI" ],
        "attributes" : [ {
          "attributeType" : "Internal",
          "name" : "name",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        }, {
          "attributeType" : "Internal",
          "name" : "dataType",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        }, {
          "attributeType" : "Internal",
          "name" : "value",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "DateTime"
        }, {
          "attributeType" : "Internal",
          "name" : "isQualifier",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Boolean"
        }, {
          "attributeType" : "Internal",
          "name" : "acquisitionTime",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        } ]
      }, {
        "name" : "ParameterFloat",
        "tags" : [ "PAS_X_MSI" ],
        "attributes" : [ {
          "attributeType" : "Internal",
          "name" : "name",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        }, {
          "attributeType" : "Internal",
          "name" : "dataType",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        }, {
          "attributeType" : "Internal",
          "name" : "value",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Real32"
        }, {
          "attributeType" : "Internal",
          "name" : "isQualifier",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        }, {
          "attributeType" : "Internal",
          "name" : "acquisitionTime",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        } ]
      }, {
        "name" : "ParameterString",
        "tags" : [ "PAS_X_MSI" ],
        "attributes" : [ {
          "attributeType" : "Internal",
          "name" : "name",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        }, {
          "attributeType" : "Internal",
          "name" : "dataType",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        }, {
          "attributeType" : "Internal",
          "name" : "value",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "String"
        }, {
          "attributeType" : "Internal",
          "name" : "isQualifier",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        }, {
          "attributeType" : "Internal",
          "name" : "acquisitionTime",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "internalType" : "Any"
        } ]
      }, {
        "name" : "Publish",
        "tags" : [ "PAS_X_MSI" ],
        "attributes" : [ {
          "attributeType" : "Object",
          "name" : "MsiMessageContainer",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "attributes" : [ {
            "attributeType" : "Internal",
            "name" : "messageInstanceId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "direction",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "systemId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "messageType",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "messageContext",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Modeled",
            "name" : "message",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "model" : "MsiOrderParameterMessage"
          } ]
        } ]
      }, {
        "name" : "Request",
        "tags" : [ "PAS_X_MSI" ],
        "attributes" : [ {
          "attributeType" : "Object",
          "name" : "MsiMessageContainer",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "attributes" : [ {
            "attributeType" : "Internal",
            "name" : "messageInstanceId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "direction",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "systemId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "messageType",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "messageContext",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Modeled",
            "name" : "message",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "model" : "MsiOrderParameterMessage"
          } ]
        } ]
      }, {
        "name" : "TransferResult",
        "tags" : [ "PAS_X_MSI" ],
        "attributes" : [ {
          "attributeType" : "Object",
          "name" : "TransferResult",
          "nullable" : false,
          "required" : false,
          "array" : false,
          "attributes" : [ {
            "attributeType" : "Internal",
            "name" : "MsgInstanceId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Any"
          }, {
            "attributeType" : "Internal",
            "name" : "SystemId",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "String"
          }, {
            "attributeType" : "Internal",
            "name" : "Success",
            "nullable" : false,
            "required" : false,
            "array" : false,
            "internalType" : "Boolean"
          }, {
            "attributeType" : "Internal",
            "name" : "Error",
            "nullable" : true,
            "required" : false,
            "array" : false,
            "internalType" : "String"
          } ]
        } ]
      } ],
      "instances" : [ ]
    },
    "conditions" : [ ],
    "functions" : [ ],
    "tags" : [ {
      "name" : "PAS_X_MSI"
    } ],
    "pipelines" : [ {
      "name" : "DeleteClosedOrderParameterMessages",
      "tags" : [ "PAS_X_MSI" ],
      "inputStages" : [ "ReadClosed" ],
      "stages" : [ {
        "name" : "ReadClosed",
        "display" : {
          "position" : {
            "x" : 240,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".ReadSourcesConfig",
          "failureOutputs" : [ ],
          "keyReferences" : [ {
            "location" : "child",
            "key" : "Closed",
            "reference" : "{{Connection.MsiMessages.ClosedOrderParameterMessages}}"
          } ],
          "inputValueLocation" : "exclude",
          "inputValueKey" : "eventIn"
        },
        "outputs" : [ "ClosedToRoot" ]
      }, {
        "name" : "DeleteMessages",
        "display" : {
          "position" : {
            "x" : 1590,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".ReadSourcesConfig",
          "failureOutputs" : [ ],
          "keyReferences" : [ {
            "location" : "inline",
            "key" : "Source1",
            "reference" : "{{Connection.MsiMessages.DeleteOrderParameterMessages(_id={{event.value._id}})}}"
          } ],
          "inputValueLocation" : "exclude",
          "inputValueKey" : "eventIn"
        },
        "outputs" : [ ]
      }, {
        "name" : "Breakup",
        "display" : {
          "position" : {
            "x" : 1140,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".BreakupConfig",
          "breakupType" : "array"
        },
        "outputs" : [ "DeleteMessages" ]
      }, {
        "name" : "ClosedToRoot",
        "display" : {
          "position" : {
            "x" : 690,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".TransformConfig",
          "transformExpression" : "stage.setValue(event.value.Closed);"
        },
        "outputs" : [ "Breakup" ]
      } ],
      "trackActivity" : true,
      "triggers" : [ {
        "name" : "CronTrigger",
        "display" : {
          "position" : {
            "x" : -419,
            "y" : -1
          }
        },
        "config" : {
          "type" : ".TriggerCron",
          "enabled" : true,
          "logging" : "off",
          "schedule" : "*/30 * * * *",
          "timezone" : "utc"
        }
      } ],
      "callable" : "disabled"
    }, {
      "name" : "ProcessMSIRequestAndPublishResult",
      "description" : "Extract batch no. from request payload, forward to sub-pipeline to capture file data, curate result payload and POST back to MSI.",
      "tags" : [ "PAS_X_MSI" ],
      "inputStages" : [ "Messages" ],
      "stages" : [ {
        "name" : "Publish",
        "display" : {
          "position" : {
            "x" : 2040,
            "y" : -67
          }
        },
        "config" : {
          "type" : ".ModelConfig",
          "model" : "Publish",
          "objectName" : "",
          "initExpression" : "",
          "attributes" : [ {
            "name" : "MsiMessageContainer",
            "expression" : {
              "type" : "JavaScript",
              "expression" : ""
            },
            "attributes" : [ {
              "name" : "messageInstanceId",
              "expression" : {
                "type" : "JavaScript",
                "expression" : "function generateUUID() {\r\n   const hexDigits = '0123456789abcdef';\r\n   let uuid = '';\r\n\r\n   for (let i = 0; i < 36; i++) {\r\n       if (i === 8 || i === 13 || i === 18 || i === 23) {\r\n           uuid += '-';\r\n       } else if (i === 14) {\r\n           uuid += '4'; // Version 4 UUID always has the 4 here\r\n       } else if (i === 19) {\r\n           uuid += hexDigits[(Math.random() * 4 | 0) + 8]; // 8, 9, A, or B\r\n       } else {\r\n           uuid += hexDigits[Math.floor(Math.random() * 16)];\r\n       }\r\n   }\r\n   return uuid;\r\n}\r\n\r\n// Usage\r\nconst randomUUID = generateUUID();\r\nreturn randomUUID;"
              }
            }, {
              "name" : "direction",
              "expression" : {
                "type" : "JavaScript",
                "expression" : "return \"SF_TO_MES\";"
              }
            }, {
              "name" : "systemId",
              "expression" : {
                "type" : "JavaScript",
                "expression" : "return event.value.MsiMessageContainer_systemId;"
              }
            }, {
              "name" : "messageType",
              "expression" : {
                "type" : "JavaScript",
                "expression" : "return event.value.MsiMessageContainer_messageType;"
              }
            }, {
              "name" : "messageContext",
              "expression" : {
                "type" : "JavaScript",
                "expression" : ""
              }
            }, {
              "name" : "message",
              "expression" : {
                "type" : "JavaScript",
                "expression" : ""
              },
              "attributes" : [ {
                "name" : "MsiOrderParameterMessage",
                "expression" : {
                  "type" : "JavaScript",
                  "expression" : ""
                },
                "attributes" : [ {
                  "name" : "messageInstanceId",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : "function generateUUID() {\r\n   const hexDigits = '0123456789abcdef';\r\n   let uuid = '';\r\n\r\n   for (let i = 0; i < 36; i++) {\r\n       if (i === 8 || i === 13 || i === 18 || i === 23) {\r\n           uuid += '-';\r\n       } else if (i === 14) {\r\n           uuid += '4'; // Version 4 UUID always has the 4 here\r\n       } else if (i === 19) {\r\n           uuid += hexDigits[(Math.random() * 4 | 0) + 8]; // 8, 9, A, or B\r\n       } else {\r\n           uuid += hexDigits[Math.floor(Math.random() * 16)];\r\n       }\r\n   }\r\n   return uuid;\r\n}\r\n\r\n// Usage\r\nconst randomUUID = generateUUID();\r\nreturn randomUUID;"
                  }
                }, {
                  "name" : "direction",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : "return \"SF_TO_MES\";"
                  }
                }, {
                  "name" : "messageId",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_messageId;"
                  }
                }, {
                  "name" : "supplierId",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_supplierId;"
                  }
                }, {
                  "name" : "deviceTypeId",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_deviceTypeId;"
                  }
                }, {
                  "name" : "supplierVersion",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "functionalId",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "orderContext",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "creationTime",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : "const date = new Date();\r\nconst pad = (n) => (n < 10 ? '0' + n : n); // Helper function for padding\r\n \r\nconst formattedDate = `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())},${pad(date.getMilliseconds())}`\r\n \r\nreturn formattedDate;"
                  }
                }, {
                  "name" : "BatchNo",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  },
                  "attributes" : [ {
                    "name" : "name",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_BatchNo_name;"
                    }
                  }, {
                    "name" : "dataType",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_BatchNo_dataType;"
                    }
                  }, {
                    "name" : "value",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_BatchNo_value;"
                    }
                  }, {
                    "name" : "isQualifier",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return Boolean(event.value.MsiMessageContainer_message_MsiOrderParameterMessage_BatchNo_isQualifier);"
                    }
                  }, {
                    "name" : "acquisitionTime",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_BatchNo_acquisitionTime;"
                    }
                  } ]
                }, {
                  "name" : "DeviceNo",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  },
                  "attributes" : [ {
                    "name" : "name",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_DeviceNo_name;"
                    }
                  }, {
                    "name" : "dataType",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_DeviceNo_dataType;"
                    }
                  }, {
                    "name" : "value",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_DeviceNo_value;"
                    }
                  }, {
                    "name" : "isQualifier",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return Boolean(event.value.MsiMessageContainer_message_MsiOrderParameterMessage_DeviceNo_isQualifier);"
                    }
                  }, {
                    "name" : "acquisitionTime",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return event.value.MsiMessageContainer_message_MsiOrderParameterMessage_DeviceNo_acquisitionTime;"
                    }
                  } ]
                }, {
                  "name" : "Weight",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  },
                  "attributes" : [ {
                    "name" : "name",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return \"Weight\";"
                    }
                  }, {
                    "name" : "dataType",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return \"Double\";"
                    }
                  }, {
                    "name" : "value",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return Math.random() * 10;"
                    }
                  }, {
                    "name" : "isQualifier",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "return true;"
                    }
                  }, {
                    "name" : "acquisitionTime",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : "const date = new Date();\r\nconst pad = (n) => (n < 10 ? '0' + n : n); // Helper function for padding\r\n\r\nconst formattedDate = `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())},${date.getMilliseconds()}`\r\n\r\nreturn formattedDate;"
                    }
                  } ]
                } ]
              } ]
            } ]
          } ]
        },
        "outputs" : [ "XMLFormat" ]
      }, {
        "name" : "XMLFormat",
        "display" : {
          "position" : {
            "x" : 2490,
            "y" : -67
          }
        },
        "config" : {
          "type" : ".XMLFormatConfig",
          "outgoingType" : "String"
        },
        "outputs" : [ "Replaces" ]
      }, {
        "name" : "Messages",
        "display" : {
          "position" : {
            "x" : 238,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".ReadSourcesConfig",
          "failureOutputs" : [ ],
          "keyReferences" : [ {
            "location" : "child",
            "key" : "Messages",
            "reference" : "{{Connection.MsiMessages.OpenOrderParameterMessages}}"
          } ],
          "inputValueLocation" : "exclude",
          "inputValueKey" : "eventIn"
        },
        "outputs" : [ "GetMessages" ]
      }, {
        "name" : "Breakup",
        "display" : {
          "position" : {
            "x" : 1140,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".BreakupConfig",
          "breakupType" : "array"
        },
        "outputs" : [ "Filter" ]
      }, {
        "name" : "GetMessages",
        "display" : {
          "position" : {
            "x" : 690,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".TransformConfig",
          "transformExpression" : "stage.setValue(event.value.Messages);"
        },
        "outputs" : [ "Breakup" ]
      }, {
        "name" : "Filter",
        "display" : {
          "position" : {
            "x" : 1590,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".AttributeFilterConfig",
          "filterOption" : "exclude",
          "attributeList" : [ "_id", "_name", "_timestamp" ],
          "retainAsMetadata" : true,
          "metadataKey" : "filtered"
        },
        "outputs" : [ "Publish", "InprocessStatus" ]
      }, {
        "name" : "ClosedStatus",
        "display" : {
          "position" : {
            "x" : 3840,
            "y" : -135
          }
        },
        "config" : {
          "type" : ".TransformConfig",
          "transformExpression" : "const status = { \"status\": \"Closed\" };\r\nstage.setValue(status);"
        },
        "outputs" : [ "SQLite" ]
      }, {
        "name" : "SQLite",
        "display" : {
          "position" : {
            "x" : 4290,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".DynamicWriteConfig",
          "failureOutputs" : [ ],
          "connectionReference" : "{{Connection.MsiMessages}}",
          "qualifier" : {
            "table" : "Messages",
            "writeType" : "update",
            "whereColumn" : "_id = {{event.metadata.filtered._id}}",
            "logAsJSON" : false,
            "createOption" : "off",
            "tableCacheInterval" : {
              "duration" : 1,
              "units" : "Hours"
            },
            "breakupArrays" : false
          },
          "qualifierExpression" : "",
          "writeReturn" : "completion"
        },
        "outputs" : [ ]
      }, {
        "name" : "Replaces",
        "display" : {
          "position" : {
            "x" : 2940,
            "y" : -67
          }
        },
        "config" : {
          "type" : ".TransformConfig",
          "transformExpression" : "let message = event.value;\r\nmessage = message.replace('<MsiMessageContainer>','<MsiMessageContainer xmlns:xsi=\\\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">');\r\nmessage = message.replace('<MsiOrderParameterMessage>','<MsiOrderParameterMessage xmlns:xsi=\\\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">');\r\nmessage = message.replace('<BatchNo>','<parameter>');\r\nmessage = message.replace('</BatchNo>','</parameter>');\r\nmessage = message.replace('<DeviceNo>','<parameter>');\r\nmessage = message.replace('</DeviceNo>','</parameter>');\r\nmessage = message.replace('<Weight>','<parameter>');\r\nmessage = message.replace('</Weight>','</parameter>');\r\nstage.setValue(message);"
        },
        "outputs" : [ "PostMessage" ]
      }, {
        "name" : "ErrorStatus",
        "display" : {
          "position" : {
            "x" : 3840,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".TransformConfig",
          "transformExpression" : "const status = { \"status\": \"Error\" };\r\nconst errorMessage = { \"errorMessage\": event.metadata.writeResults[0] }\r\nlet payload = {...status,...errorMessage};\r\nstage.setValue(payload);"
        },
        "outputs" : [ "SQLite" ]
      }, {
        "name" : "InprocessStatus",
        "display" : {
          "position" : {
            "x" : 3840,
            "y" : 135
          }
        },
        "config" : {
          "type" : ".TransformConfig",
          "transformExpression" : "const status = { \"status\": \"Inprocess\" };\r\nstage.setValue(status);"
        },
        "outputs" : [ "SQLite" ]
      }, {
        "name" : "PostMessage",
        "display" : {
          "position" : {
            "x" : 3390,
            "y" : -67
          }
        },
        "config" : {
          "type" : ".WriteConfig",
          "failureOutputs" : [ "ErrorStatus" ],
          "references" : [ "{{Connection.MsiRESTClient.PostMessage}}" ],
          "writeReturn" : "completion"
        },
        "outputs" : [ "ClosedStatus" ]
      } ],
      "trackActivity" : true,
      "triggers" : [ {
        "name" : "PolledTrigger",
        "display" : {
          "position" : {
            "x" : -454,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".TriggerPolled",
          "enabled" : true,
          "interval" : {
            "duration" : 5,
            "units" : "Seconds"
          }
        }
      } ],
      "callable" : "disabled"
    }, {
      "name" : "ReceiveMSIRequestAndSendAcknowledge",
      "description" : "Capture Request From MSI.\nReply with acknowledgement.\nSave message into SQLite",
      "tags" : [ "PAS_X_MSI" ],
      "inputStages" : [ "XMLParser" ],
      "stages" : [ {
        "name" : "ReturnAck",
        "display" : {
          "position" : {
            "x" : 1569,
            "y" : -137
          }
        },
        "config" : {
          "type" : ".ReturnConfig"
        },
        "outputs" : [ ]
      }, {
        "name" : "Model",
        "display" : {
          "position" : {
            "x" : 683,
            "y" : -136
          }
        },
        "config" : {
          "type" : ".ModelConfig",
          "model" : "TransferResult",
          "objectName" : "",
          "initExpression" : "",
          "attributes" : [ {
            "name" : "TransferResult",
            "expression" : {
              "type" : "JavaScript",
              "expression" : ""
            },
            "attributes" : [ {
              "name" : "MsgInstanceId",
              "expression" : {
                "type" : "JavaScript",
                "expression" : "return event.value.MsiMessageContainer.messageInstanceId;"
              }
            }, {
              "name" : "SystemId",
              "expression" : {
                "type" : "JavaScript",
                "expression" : "return event.value.MsiMessageContainer.systemId;"
              }
            }, {
              "name" : "Success",
              "expression" : {
                "type" : "JavaScript",
                "expression" : "return true"
              }
            }, {
              "name" : "Error",
              "expression" : {
                "type" : "JavaScript",
                "expression" : ""
              }
            } ]
          } ]
        },
        "outputs" : [ "XMLFormat" ]
      }, {
        "name" : "ConvertArrayParametersToObject",
        "display" : {
          "position" : {
            "x" : 682,
            "y" : 73
          }
        },
        "config" : {
          "type" : ".TransformConfig",
          "transformExpression" : "// sets BatchNo based on an array of parameters where name equals BatchNo\r\nevent.value.MsiMessageContainer.message.MsiOrderParameterMessage.BatchNo = (event.value.MsiMessageContainer.message.MsiOrderParameterMessage.parameter\r\n.find(p => p.name === \"BatchNo\") || {});\r\n// sets DeviceNo based on an array of parameters where name equals DeviceNo\r\nevent.value.MsiMessageContainer.message.MsiOrderParameterMessage.DeviceNo = (event.value.MsiMessageContainer.message.MsiOrderParameterMessage.parameter\r\n.find(p => p.name === \"DeviceNo\") || {});\r\nstage.setValue(event.value);"
        },
        "outputs" : [ "Request" ]
      }, {
        "name" : "Flatten",
        "display" : {
          "position" : {
            "x" : 1546,
            "y" : 77
          }
        },
        "config" : {
          "type" : ".FlattenConfig",
          "delimiter" : "_"
        },
        "outputs" : [ "AddOpenStatus" ]
      }, {
        "name" : "XMLParser",
        "display" : {
          "position" : {
            "x" : 240,
            "y" : 0
          }
        },
        "config" : {
          "type" : ".XMLParserConfig",
          "failureOutputs" : [ ],
          "incomingType" : "String",
          "encoding" : "Auto"
        },
        "outputs" : [ "ConvertArrayParametersToObject", "Model" ]
      }, {
        "name" : "XMLFormat",
        "display" : {
          "position" : {
            "x" : 1133,
            "y" : -134
          }
        },
        "config" : {
          "type" : ".XMLFormatConfig",
          "outgoingType" : "String"
        },
        "outputs" : [ "ReturnAck" ]
      }, {
        "name" : "Messages",
        "display" : {
          "position" : {
            "x" : 2379,
            "y" : 77
          }
        },
        "config" : {
          "type" : ".DynamicWriteConfig",
          "failureOutputs" : [ ],
          "connectionReference" : "{{Connection.MsiMessages}}",
          "qualifier" : {
            "table" : "Messages",
            "writeType" : "insert",
            "whereColumn" : "",
            "logAsJSON" : false,
            "createOption" : "create_and_update",
            "tableCacheInterval" : {
              "duration" : 1,
              "units" : "Hours"
            },
            "breakupArrays" : false
          },
          "qualifierExpression" : "",
          "writeReturn" : "completion"
        },
        "outputs" : [ ]
      }, {
        "name" : "AddOpenStatus",
        "display" : {
          "position" : {
            "x" : 1946,
            "y" : 77
          }
        },
        "config" : {
          "type" : ".TransformConfig",
          "transformExpression" : "const status = { \"status\": \"Open\" };\r\nlet payload = {...event.value,...status};\r\nstage.setValue(payload);"
        },
        "outputs" : [ "Messages" ]
      }, {
        "name" : "Request",
        "display" : {
          "position" : {
            "x" : 1124,
            "y" : 77
          }
        },
        "config" : {
          "type" : ".ModelConfig",
          "model" : "Request",
          "objectName" : "",
          "initExpression" : "",
          "attributes" : [ {
            "name" : "MsiMessageContainer",
            "expression" : {
              "type" : "JavaScript",
              "expression" : "return event.value.MsiMessageContainer;"
            },
            "attributes" : [ {
              "name" : "messageInstanceId",
              "expression" : {
                "type" : "JavaScript",
                "expression" : ""
              }
            }, {
              "name" : "direction",
              "expression" : {
                "type" : "JavaScript",
                "expression" : ""
              }
            }, {
              "name" : "systemId",
              "expression" : {
                "type" : "JavaScript",
                "expression" : ""
              }
            }, {
              "name" : "messageType",
              "expression" : {
                "type" : "JavaScript",
                "expression" : ""
              }
            }, {
              "name" : "messageContext",
              "expression" : {
                "type" : "JavaScript",
                "expression" : ""
              }
            }, {
              "name" : "message",
              "expression" : {
                "type" : "JavaScript",
                "expression" : ""
              },
              "attributes" : [ {
                "name" : "MsiOrderParameterMessage",
                "expression" : {
                  "type" : "JavaScript",
                  "expression" : ""
                },
                "attributes" : [ {
                  "name" : "messageInstanceId",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "direction",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "messageId",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "supplierId",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "deviceTypeId",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "supplierVersion",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "functionalId",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "orderContext",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "creationTime",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  }
                }, {
                  "name" : "BatchNo",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  },
                  "attributes" : [ {
                    "name" : "name",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "dataType",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "value",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "isQualifier",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "acquisitionTime",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  } ]
                }, {
                  "name" : "DeviceNo",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  },
                  "attributes" : [ {
                    "name" : "name",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "dataType",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "value",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "isQualifier",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "acquisitionTime",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  } ]
                }, {
                  "name" : "Weight",
                  "expression" : {
                    "type" : "JavaScript",
                    "expression" : ""
                  },
                  "attributes" : [ {
                    "name" : "name",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "dataType",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "value",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "isQualifier",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  }, {
                    "name" : "acquisitionTime",
                    "expression" : {
                      "type" : "JavaScript",
                      "expression" : ""
                    }
                  } ]
                } ]
              } ]
            } ]
          } ]
        },
        "outputs" : [ "Flatten" ]
      } ],
      "trackActivity" : true,
      "triggers" : [ ],
      "callable" : "external"
    } ],
    "namespace" : [ ]
  },
  "network" : {
    "groups" : [ ],
    "hubs" : [ ]
  }
}