When you want to change the message structure, you would realize that messages are referenced in run time table and hence we're not allowed to edit the structure.
When you change the underlying record structure, the message structure gets changed automatically. And in all transactions going forward the newly added field will be included in the XML message. But if you want to exclude certain fields from the structure then make sure it is not referenced in any of the scenarios given below.
This is extracted form Peoplebooks but I've tried few of them on my own.
We cannot modify a message if it satisfies any of the below condition:
1. The service to which a message is contained in a restricted service. Go to Service
Configuration component (PT > IB > Configuration > Service Configuration > and select "Restricted Service" page and check for the service. You can directly open the service and check whether it is restricted or not. This option is mostly used in delivered services.
2. The message is used internally by the system. For example, the delivered IB_GENERIC message is read-only and is used internally by the system.
3. The message is referenced in the runtime tables.
To work around this, you must remove any entries in the runtime tables that reference the message.The run time tables are given below. Make sure data is cleared from these tables. Do not delete the transactions, instead go for archive.
select * from psapmsgpubcon where ib_operationname = :1 and versionname = :2;
select * from psapmsgsubcon where ib_operationname = :1 and versionname = :2
select * from psibloghdr where ib_operationname = :1 and versionname = :2
select * from psapmsgpubhdr where extoperationname = :1
4. The message is used in a service operation where WSDL documents have been generated.
5. The message is used in a service operation that has validation enabled.
When you change the underlying record structure, the message structure gets changed automatically. And in all transactions going forward the newly added field will be included in the XML message. But if you want to exclude certain fields from the structure then make sure it is not referenced in any of the scenarios given below.
This is extracted form Peoplebooks but I've tried few of them on my own.
We cannot modify a message if it satisfies any of the below condition:
1. The service to which a message is contained in a restricted service. Go to Service
Configuration component (PT > IB > Configuration > Service Configuration > and select "Restricted Service" page and check for the service. You can directly open the service and check whether it is restricted or not. This option is mostly used in delivered services.
2. The message is used internally by the system. For example, the delivered IB_GENERIC message is read-only and is used internally by the system.
3. The message is referenced in the runtime tables.
To work around this, you must remove any entries in the runtime tables that reference the message.The run time tables are given below. Make sure data is cleared from these tables. Do not delete the transactions, instead go for archive.
select * from psapmsgpubcon where ib_operationname = :1 and versionname = :2;
select * from psapmsgsubcon where ib_operationname = :1 and versionname = :2
select * from psibloghdr where ib_operationname = :1 and versionname = :2
select * from psapmsgpubhdr where extoperationname = :1
4. The message is used in a service operation where WSDL documents have been generated.
5. The message is used in a service operation that has validation enabled.