Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

problem with creating condition record for material release status

Former Member
0 Likes
892

This is my code, which is not working.. Please suggest me on this.

data: ls_komg type KOMG,

       ls_komv type komv,

       lt_komv TYPE TABLE OF komv,

       lv_new_record.

*ls_komg-kunnr = '0001000008'. " Cust number

ls_komg-matnr = '000008907043000118'. " Mat number

ls_komg-VKORG = '1000'.

ls_komg-vtweg = '10'.

clear: Lt_komv,LS_KOMV.

ls_komv-kappl = 'V '. " Application V = Sales

ls_komv-kschl = 'PR00'. " Condition type

ls_komv-krech = 'C'. " calculation type; B -Fixed amount

ls_komv-waers = 'INR'. " Currency

ls_komv-kpein = '1'.

ls_komv-kmein = 'EA'. " Unit of measurement

ls_komv-kbetr = '121.50'. " new condition value

ls_komv-knumv = '0000007717'."<condition record number>.

ls_komv-kposn = '01'."<>.         " calculation type;

append ls_komv to lt_komv.

CALL FUNCTION 'RV_CONDITION_COPY'

   EXPORTING

     application                       = 'V'

     condition_table                   = '005'

     condition_type                    = 'PR00'

*    DATE_FROM                         = '20110629'

*    DATE_TO                           = '99991231'

     ENQUEUE                           = 'X'

*   I_KOMK                            = ' '

*   I_KOMP                            = ' '

     key_fields                        = ls_komg

     MAINTAIN_MODE                     = 'B'

     NO_AUTHORITY_CHECK                = 'X'

     NO_FIELD_CHECK                    = 'X'

*   SELECTION_DATE                    = '00000000'

     KEEP_OLD_RECORDS                  = 'X'

*   MATERIAL_M                        =

*   USED_BY_IDOC                      = ' '

*   I_KONA                            =

     OVERLAP_CONFIRMED                 = 'X'

     NO_DB_UPDATE                      = ' '

*   USED_BY_RETAIL                    = ' '

  IMPORTING

*   E_KOMK                            =

*   E_KOMP                            =

     NEW_RECORD                        = lv_new_record

*   E_DATAB                           =

*   E_DATBI                           =

*   E_PRDAT                           =

   tables

     copy_records                      = lt_komv

*   COPY_STAFFEL                      =

*   COPY_RECS_IDOC                    =

  EXCEPTIONS

    ENQUEUE_ON_RECORD                 = 1

    INVALID_APPLICATION               = 2

    INVALID_CONDITION_NUMBER          = 3

    INVALID_CONDITION_TYPE            = 4

    NO_AUTHORITY_EKORG                = 5

    NO_AUTHORITY_KSCHL                = 6

    NO_AUTHORITY_VKORG                = 7

    NO_SELECTION                      = 8

    TABLE_NOT_VALID                   = 9

    NO_MATERIAL_FOR_SETTLEMENT        = 10

    NO_UNIT_FOR_PERIOD_COND           = 11

    NO_UNIT_REFERENCE_MAGNITUDE       = 12

    INVALID_CONDITION_TABLE           = 13

    OTHERS                            = 14

           .

IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

break jdonepud.

call function 'RV_CONDITION_SAVE'.

call function 'RV_CONDITION_RESET'.

This is my code, which is not working.. Please suggest me on this.

data: ls_komg type KOMG,

       ls_komv type komv,

       lt_komv TYPE TABLE OF komv,

       lv_new_record.

*ls_komg-kunnr = '0001000008'. " Cust number

ls_komg-matnr = '000008907043000118'. " Mat number

ls_komg-VKORG = '1000'.

ls_komg-vtweg = '10'.

clear: Lt_komv,LS_KOMV.

ls_komv-kappl = 'V '. " Application V = Sales

ls_komv-kschl = 'PR00'. " Condition type

ls_komv-krech = 'C'. " calculation type; B -Fixed amount

ls_komv-waers = 'INR'. " Currency

ls_komv-kpein = '1'.

ls_komv-kmein = 'EA'. " Unit of measurement

ls_komv-kbetr = '121.50'. " new condition value

ls_komv-knumv = '0000007717'."<condition record number>.

ls_komv-kposn = '01'."<>.         " calculation type;

append ls_komv to lt_komv.

CALL FUNCTION 'RV_CONDITION_COPY'

   EXPORTING

     application                       = 'V'

     condition_table                   = '005'

     condition_type                    = 'PR00'

*    DATE_FROM                         = '20110629'

*    DATE_TO                           = '99991231'

     ENQUEUE                           = 'X'

*   I_KOMK                            = ' '

*   I_KOMP                            = ' '

     key_fields                        = ls_komg

     MAINTAIN_MODE                     = 'B'

     NO_AUTHORITY_CHECK                = 'X'

     NO_FIELD_CHECK                    = 'X'

*   SELECTION_DATE                    = '00000000'

     KEEP_OLD_RECORDS                  = 'X'

*   MATERIAL_M                        =

*   USED_BY_IDOC                      = ' '

*   I_KONA                            =

     OVERLAP_CONFIRMED                 = 'X'

     NO_DB_UPDATE                      = ' '

*   USED_BY_RETAIL                    = ' '

  IMPORTING

*   E_KOMK                            =

*   E_KOMP                            =

     NEW_RECORD                        = lv_new_record

*   E_DATAB                           =

*   E_DATBI                           =

*   E_PRDAT                           =

   tables

     copy_records                      = lt_komv

*   COPY_STAFFEL                      =

*   COPY_RECS_IDOC                    =

  EXCEPTIONS

    ENQUEUE_ON_RECORD                 = 1

    INVALID_APPLICATION               = 2

    INVALID_CONDITION_NUMBER          = 3

    INVALID_CONDITION_TYPE            = 4

    NO_AUTHORITY_EKORG                = 5

    NO_AUTHORITY_KSCHL                = 6

    NO_AUTHORITY_VKORG                = 7

    NO_SELECTION                      = 8

    TABLE_NOT_VALID                   = 9

    NO_MATERIAL_FOR_SETTLEMENT        = 10

    NO_UNIT_FOR_PERIOD_COND           = 11

    NO_UNIT_REFERENCE_MAGNITUDE       = 12

    INVALID_CONDITION_TABLE           = 13

    OTHERS                            = 14

           .

IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

break jdonepud.

call function 'RV_CONDITION_SAVE'.

call function 'RV_CONDITION_RESET'.

4 REPLIES 4
Read only

nabheetscn
SAP Champion
SAP Champion
0 Likes
833

What error does it throw. Please provide the details of what values are returned in

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.


Read only

0 Likes
833

thanks  for your reply,

no error.

SY-MSGID =

SY-MSGTY =

SY-MSGNO = 000

SY-MSGV1 =

SY-MSGV2 =

SY-MSGV3 =

SY-MSGV4 =

suggest me on this

Read only

0 Likes
833

hi dear all,

*ls_komg-kunnr = '0001000008'. " Cust number

ls_komg-matnr = '000008907043000141'. " Mat number

ls_komg-VKORG = '1000'.

ls_komg-vtweg = '10'.

clear: Lt_komv,LS_KOMV.

ls_komv-kappl = 'V '. " Application V = Sales

ls_komv-kschl = 'PR00'. " Condition type

ls_komv-krech = 'C'. " calculation type; B -Fixed amount

ls_komv-waers = 'INR'. " Currency

ls_komv-kpein = '1'.

ls_komv-kmein = 'EA'. " Unit of measurement

ls_komv-kbetr = '121.50'. " new condition value

*ls_komv-knumv = '0000007717'."<condition record number>.

*ls_komv-kposn = '01'."<>.         " calculation type;

append ls_komv to lt_komv.

CALL FUNCTION 'RV_CONDITION_COPY'

   EXPORTING

     application                       = 'V'

     condition_table                   = '304'

     condition_type                    = 'PR00'

     DATE_FROM                         = '20140109'

     DATE_TO                           = '99991231'

*    ENQUEUE                           = 'X'

*   I_KOMK                            = ' '

*   I_KOMP                            = ' '

     key_fields                        = ls_komg

     MAINTAIN_MODE                     = 'A'

*    NO_AUTHORITY_CHECK                = 'X'

*    NO_FIELD_CHECK                    = 'X'

*   SELECTION_DATE                    = '00000000'

     KEEP_OLD_RECORDS                  = 'X'

*   MATERIAL_M                        =

*   USED_BY_IDOC                      = ' '

*   I_KONA                            =

     OVERLAP_CONFIRMED                 = 'X'

     NO_DB_UPDATE                      = ' '

*   USED_BY_RETAIL                    = ' '

  IMPORTING

*   E_KOMK                            =

*   E_KOMP                            =

     NEW_RECORD                        = lv_new_record

*   E_DATAB                           =

*   E_DATBI                           =

*   E_PRDAT                           =

   tables

     copy_records                      = lt_komv

*   COPY_STAFFEL                      =

*   COPY_RECS_IDOC                    =

  EXCEPTIONS

    ENQUEUE_ON_RECORD                 = 1

    INVALID_APPLICATION               = 2

    INVALID_CONDITION_NUMBER          = 3

    INVALID_CONDITION_TYPE            = 4

    NO_AUTHORITY_EKORG                = 5

    NO_AUTHORITY_KSCHL                = 6

    NO_AUTHORITY_VKORG                = 7

    NO_SELECTION                      = 8

    TABLE_NOT_VALID                   = 9

    NO_MATERIAL_FOR_SETTLEMENT        = 10

    NO_UNIT_FOR_PERIOD_COND           = 11

    NO_UNIT_REFERENCE_MAGNITUDE       = 12

    INVALID_CONDITION_TABLE           = 13

    OTHERS                            = 14

           .

IF sy-subrc <> 0.

  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

IF sy-subrc = 0.

   CALL FUNCTION 'RV_CONDITION_SAVE'.

   COMMIT WORK.

   CALL FUNCTION 'RV_CONDITION_RESET'.

"necessary to write data

   COMMIT WORK.

   WRITE:/ 'Success'.

ELSE.

   WRITE: / 'Error'.

ENDIF.

this working fine

Read only

0 Likes
833

In the first code you have missed COMMIT WORK AND WAIT. Please add it.

Nabheet