Summary : In SAP CRMB Billing engine Framework, we don't have GOS (Generic Object Services) toolbar available in a SAP standard solution.
We received a requirement to create an attachment and save the IDOC information when some action gets executed for a billing document in the system. It was required to store the PDF document and outbound IDOC information against each billing document. Not but not the least, it should be available to the user for reference purpose. We reasoned that the GOS toolbar could offer a more convenient way to store the data and access it quickly.

Standard screen of CRM Billing document in /bea/crmb11
Solution : I would like to share how we achieved the functionality by doing some configuration and writing a piece of code in following steps.
Configuration needs to be done in T-code BEFN for
Application CRMB : CRM Billing,
Object : BD

Now Switch to All Features

And
create new Feature

Let's say feature name is
ZCRMB_GOS

Further create new subscription

Let's say subscription name as ZSUB_GOS
Assign include (which needs to be created in SE38) and Subscription type as ‘A’.
Let’s say it Z_CRMB_GOS_ACTIVATE

Now activate the feature

Add new entry for the event BD_UHSD3 at the following path
CRMB ->Object ->BD ->Function Group ->User Interface Layer ->Function Module ->HD_SHOWDETAIL ->Event ->BD_UHSD3 ->Subscription(ZSUB_GOS)

Event BD_UHSD3
Don't forget to create include Z_CRMB_GOS_ACTIVATE in SE38

Code Snippet for GOS toolbar.
CONSTANTS : lc_appl_crmb TYPE bef_appl VALUE 'CRMB'.
DATA: lr_gos_manager TYPE REF TO cl_gos_manager.
IF is_bdh-headno_ext IS NOT INITIAL.
DATA(ls_borident) = VALUE borident( objkey = CONV swo_typeid( is_bdh-headno_ext && lc_appl_crmb )
objtype = is_bdh-objtype ).
IF ls_borident IS NOT INITIAL.
*Creating GOS object in Billing Header
CREATE OBJECT lr_gos_manager
EXPORTING
is_object = ls_borident
ip_no_commit = abap_false
EXCEPTIONS
object_invalid = 1
callback_invalid = 2.
IF sy-subrc NE 0.
RETURN.
ENDIF.
ENDIF.
ENDIF.
And as a final step generate the Application CRMB to get reflected all the config changes
Open any billing document in /bea/crmb11 to see the changes. We can see upper left the GOS toolbar has started appearing.

Further we can see all the options are available related to toolbar and can be utilized for further requirement.

Conclusion : Though SAP standard doesn't provide GOS functionality for billing document but we can enable it by making some configuration changes along with few lines of code.
The subsequent step, which I'd describe in my following blog post, would be to display GOS toolbar data on the CRM WebUI screen, including attachments and other stuff. Please continue to follow along and leave us a comment with any advice or insightful ideas.
Please follow the CRM Billing post and answer questions by visiting following link
https://answers.sap.com/tags/250532329420517083811872973551597
And read other posts on CRM billing topic as below.
https://blogs.sap.com/tags/250532329420517083811872973551597/
Thanks again for reading the document. I really appreciate your time.