Is it possible for workflow to write different channel value to BroadLog from chosen one?
Update broadlog after workflow is finished is not an option, there is need to automatically write a specific channel instead of chosen one.
So the message type actually is coming from the nms:delivery schema and not the broadlog. So unless there is a custom field in the broadlog I'm not seeing that you can write a channel value to the recipient.
Additionally, I think the biggest issue here is going to be the restriction of writing the value within the workflow versus updating after the fact. The broadlog is written to at the time of delivery preparation and analysis, there isn't really any place at this point where you could add any type of script to basically overwrite the channel and if you were to write this earlier in the workflow it would just be overridden by the delivery activity.
In this case based on the use case, I'd strongly recommend engaging Adobe Professional Services as it's likely another approach is going to be needed to meet your needs.
I believe you can either come up with standard code/naming for your non-email delivery which campaign or reporting teams can later parse it to pull the proper channel or you can extend the NMS Delivery schema to add a field to capture the real channel code (extend schema, change delivery form).
Keep in mind the ACC promotion history table (BroadLogRcp) is detailed down to the delivery level. If you want to promote a recipient to receive multi touches/messages via different channels in a given campaign, it is better to connect your campaign/segment universe to multiple deliveries. The ACC promotion history will that person x was targeted in EM, DM, SMS, etc. in a given campaign.
Well, the MMS channel is deprecated. We generate file with direct mail channel and send MMS through another solution. However, we need to mark those customers without additional effort (update chanel..)