For a complete list of all my blogs regarding content management, please see here.
When you create attachments for your business objects via cl_crm_documents=>create_with_table, you have to pass in an internal table for attachment property.
The name-list of attribute name could be got from attachment class via function module SDOK_PHIO_ATTRIBUTES_GET.
For example, attachment class CRM_P_DOC has 36 attributes.
The attributes could also be viewed in tcode DMWB:
The actual attribute value could be got via function module CRM_KW_PROPERTIES_GET:
The importing parameters are guid of logical/physical object instances:
The attribute values are stored in PROPERTIES internal table.
Do you know why in the backend table, the property is stored in field PROP09?
actually it is because I hard code the content of relative url as the attachment file name.
ls_prop-name = 'KW_RELATIVE_URL'. ls_prop-value = iv_file_name. APPEND ls_prop TO lt_prop.
The index of attribute could also be found in tcode DMWB.