on ‎2007 May 11 3:20 AM
Hi there.
I am implementing xMII for integration to XI using B2MML.
Generally messages are fired at the end of a shift, and there are up to 11 interfaces fired for each production order in the plant.
eg:
Production Confirmations
Material Movements
Goods issues to Production Orders
Goods Issue to Cost Centre
Stock Transport Orders
etc.
Some plants can have up to 20 concurrent production order, which means that based on a trigger of "End of Shift" I may need to initiate up to 220 messages to XI.
My question is, Has anyone developed a standard generic component for xMII that can handle scheduling of messages, Sequencing of messages (Where one message needs to be confirmed before the next is processed), error handling and guaranteed delivery? If so is this likely to be something that is added to the downloadable components on SDN?
Regards
Geoff Nunan
Request clarification before answering.
Thanks for all the feedback. This has really helped in getting a quick start to our projects.
Geoff.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Geoff,
good to see you've joined the forum
I'm not sure if this evolved from what Rick developed, but take a look at the following link for a generic xMII interface to XI, complete with queuing and QoS. I haven't tried it yet but it looks promising...
Sascha
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Geoff ,
You want to use XI as middle ware between plant and xMII ?
In this case first see XI and B2MML part
As B2MML messages in .xsd format are fired at the end of shift and XI will read schemas at sender channel.
Use BPM for message mapping and at receiver channel you can send it using file adapter.
At xMII end create directory BLS transaction in that first convert this xml in xMII acceptable xml format than you can give logic for sequencing as well error handling.
Best Regards
Ramshanker
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Ram, Thanks for the reply.
No, I am not using XI as Middleware between plant and xMII..
The communication path is as follows.
Source - Various Plant MES systems.
Message Triggering - xMII
Message Data Extract and Prepare - xMII
Formatt B2MML message - xMII
Message from xMII to XI - SOAP Web Services
XI recieves the B2MML from xMII and then calls processes the message and calls the relevant RFCs in ECC6.
My question is
Has anyone built standard transactions in xMII for scheduling and sequencing messages on a large scale. As mentioned, we will have around 200 messages needing to be triggered per site. What I didn't mention is that we have over 100 sites. We could build transactions in xMII to trigger each individual message, but I was hoping to build something more generic that could perhaps read a list of messages that need to be processed from a Message Schedule table or XML file.
I was wondering if anyone had built this type of generic function in xMII before, or if it was the type of functionality that might be added to the template downloads here on the sdn site.
Thanks
Geoff Nunan
Hi, Geoffrey.
I have implemented both file-based and database-based storage queues for exactly the scenarios you describe. In the case of a file based queue, the queue "name" is the directory, and the queue entries all have a unique file name. In the case of a database queue, the table has three columns - queue name, item key, and item content (I've used wide character text fields or CLOBs). The pattern is actually quite simple:
1) To place something in a queue (file directory or database), generate a unique ID (xMII's BLS has a guid function you can use), and write/insert the data.
2) Create worker transaction(s) and add them to the scheduler to run at the required intervals (I usually use one minute or five minute intervals if things aren't time critical)
3) In these transactions, get a list of pending work (GetFileList or a DB query), use a repeater to iterate through, try the work, if it succeeds, remove from the queue (DeleteFile or DB command), if not, leave it there and terminate this execution of the loop and the transaction. Sometimes I'll also add a "limiter" to each execution of the worker (e.g. process no more than 10 messages per execution).
4) A few nice enhancements that I like to use are to add a diagnostic mechanism using either the UserLog (EventLog action), a simple text file, or a database table. You can then build a nice quick UI using xMII to view/filter these logs.
5) I also like to provide a couple of UI screens to see what is in each queue.
The first time I put this together using a file-based queuing system took a couple of hours for all of the above, and I've reused this pattern for lots of different kinds of applications.
It works well!
Best regards,
Rick
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.