Call the Create Source Code API

To create a Source Code definition and an instance of it, call the API CDR_PUB_DF_SOURCEC)DE.CREATESOURCECODE.

Its signature is:

PROCEDURE CREATESOURCECODE( 
     P_API_VERSION            IN    NUMBER, 
     P_INIT_MSG_LIST          IN    VARCHAR2 := CDR_PUB_DEF_CONSTANTS.G_FALSE, 
     P_COMMIT                 IN    VARCHAR2 := CDR_PUB_DEF_CONSTANTS.G_FALSE, 
     P_VALIDATION_LEVEL       IN    NUMBER := CDR_PUB_DEF_CONSTANTS.G_VALID_LEVEL_FULL, 
     X_RETURN_STATUS          OUT    VARCHAR2, 
     X_MSG_COUNT              OUT    NUMBER, 
     X_MSG_DATA               OUT    VARCHAR2, 
     PIO_SCREF_SOURCECDRNAMING IN OUT    CDR_NAMING_VERSION_OBJ_TYPE, 
     PI_CDRSCOBJTYPE           IN OUT    CDR_SRCCODE_OBJ_TYPE, 
     PIO_CDRSCREFOBJTYPE       IN OUT    CDR_SRCCODE_REF_OBJ_TYPE, 
     PI_CREATEOBJECT           IN    VARCHAR2, 
     PI_DEFINITON_SUBTYPE_ID   IN    CDR_NAMINGS.OBJECT_SUBTYPE_ID%TYPE, 
     PI_VLOBMODE               IN    VARCHAR2 := NULL, 
     PIO_CDRSCBLOB             IN OUT    CDR_SRCCODE_BLOB_OBJ_TYPE, 
     PIO_CDRSCCLOB             IN OUT    CDR_SRCCODE_CLOB_OBJ_TYPE 
); 

Enter Parameter values as follows:

  • PIO_SCREF_SOURCECDRNAMING. Enter CDR_NAMING_VERSION_OBJ_TYPE values that apply to the Source Code definition, as follows:
    • company_id = Enter_your_company_ID
    • obj_id = null
    • obj_ver = null
    • object_type_rc = '$OBJTYPES$SRCCDEREF'
    • name = 'Enter_a_name_for_the_Source_Code'
    • namespace_obj_id = Enter_your_Program_Definition's_obj_id
    • namespace_obj_ver = 1
    • namespace_start_obj_ver = 1
    • namespace_end_obj_ver= cdr_def_constants.cdr_max_def_object_version
    • owning_location_rc = null
    • checked_out_flag_rc = '$YESNO$NO'
    • checked_out_id = null
    • object_subtype_id = null
    • description = 'Enter_a_Description_for_the_Source_Code'
    • copied_from_company_id = null
    • copied_from_obj_id = null
    • copied_from_obj_ver = null
    • ref_company_id = null
    • ref_obj_ver = null
    • object_version_number = 1
    • status_rc = '$NAMING_STATUS$INSTALLABLE'
    • validation_status_rc = null
    • version_label = null
  • PI_CDRSCOBJTYPE. Enter CDR_SRCCODE_OBJ_TYPE values that apply to the Source Code definition, as follows:
    • company_id = Enter_your_company_ID
    • obj_id = null
    • obj_ver = 1
    • tech_type_id = Enter_your_Tech_Type_ID
    • srccode_type_rc = '$FILETYPES$SQL'
    • shareable_flag_rc = '$YESNO$NO'
    • oracle_package_name = 'Enter_the_package_name'
    • oracle_procedure_name = 'Enter_the_name_of_the_procedure_inside_the_package'
  • PIO_CDRSCREFOBJTYPE. Enter CDR_SRCCODE_REF_OBJ_TYPE values that apply to the Source Code instance, as follows:
    • company_id = Enter_your_company_ID
    • obj_id = null
    • obj_ver = 1
    • position = 1
    • primary_flag_rc = '$YESNO$NO'

      Note:

      Only one Source Code in any Program can have its Primary flag set to Yes. In the case of an adapter Program, there is no true primary Source Code because the Program as a whole is never executed. The adapter calls the functions one at a time as needed. So you can set this flag to No for all Source Code definitions in the adapter.
    • static_flag_rc = '$YESNO$NO'
    • static_program_company_id = null
    • static_program_obj_id = null

      static_program_obj_ver_id = null

    • fileref = null
  • PI_CREATEOBJECT. Enter "BOTH".
  • PI_DEFINITON_SUBTYPE_ID. Null
  • PI_VLOBMODE. Enter 'DIRECT'.
  • PIO_CDRSCBLOB. Null. You are uploading a PL/SQL package, which is a CLOB.
  • PIO_CDRSCCLOB. This is a compound object of type CDR_SRCCODE_CLOB_OBJ_TYPE. Enter values as follows for one PL/SQL package containing the custom functions and procedures you have written for the adapter.
    • file_name = name_of_the_source_code_file
    • file_clob = source_code_text
    • sc_obj_id = null
    • sc_obj_ver = null