Once a message has been published in Integration broker, you can no longer update it. The fields will be disabled and the following warning will appears in the status:
Message cannot be changed. Message referenced in runtime tables.
What if you didn't get the message and schema quite right? How do you update your message?
Behind the scenes the logic that disables the message is in the function checkruntime which lives in the record PeopleCode PSSERVICESWRK.SAVE_PB.FieldFormula. The checkruntime function basically checks four tables, and if any return a row for the service operation associated with your message, the message is disabled. The four tables are:
- PSAPMSGPUBCON
- PSAPMSGSUBCON
- PSIBLOGHDR
- PSAPMSGPUBHDR
What you'll need to do is delete any transactions associated with your message through the service operations monitor.
The base navigation to the service operations monitor is:
PeopleTools > Integration Broker > Service Operations Monitor > Monitoring
Note that you'll need to open up the messages for the appropriate service & service type.
Alternatively, if you have a lot of transactions, you could clear out the four tables …
