Application Development 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: 

Problem in uploading inforecords through "RM06IBI0"

Former Member
0 Kudos

Hi experts,

I am facing the problem when i amuploading the purchase info record data through the program RM06IBI0 for some records only(randomly).

This program is unable to upload the condition records data in the screen SAPMV13A-0201.It is giving the error filed konp-kmein(1) does not exist in the screen SAPMM06I 0102.

Can any body suggest me what is the cause? as an urgent basis.

Thanks and regards,

Vamsi.

3 REPLIES 3

Former Member
0 Kudos

hi vamsi,

kindly give the code

regards,

pavan

0 Kudos
  • Function to Open job

CALL FUNCTION 'JOB_OPEN'

EXPORTING

jobname = y_k_jobname

IMPORTING

jobcount = y_v_jobcount

EXCEPTIONS

cant_create_job = 01

invalid_job_data = 02

jobname_missing = 03.

IF sy-subrc NE 0.

MESSAGE text-016 TYPE y_k_s.

LEAVE LIST-PROCESSING.

ENDIF.

  • Insert program RM06IBI0

SUBMIT rm06ibi0 USING SELECTION-SCREEN '1000'

WITH SELECTION-TABLE y_v_rspar_tab

AND RETURN

VIA JOB y_k_jobname

NUMBER y_v_jobcount.

  • Insert program RSBDCSUB

SUBMIT rsbdcsub USING SELECTION-SCREEN '1000'

WITH SELECTION-TABLE y_v_rspar_tab1

AND RETURN

VIA JOB y_k_jobname

NUMBER y_v_jobcount.

MOVE: y_k_parm4 TO y_v_rspar_line2-selname,

y_k_p TO y_v_rspar_line2-kind,

y_k_i TO y_v_rspar_line2-sign ,

y_k_eq TO y_v_rspar_line2-option,

y_p_grp TO y_v_rspar_line2-low.

APPEND y_v_rspar_line2 TO y_v_rspar_tab2.

CLEAR y_v_rspar_line2.

MOVE: y_k_parm7 TO y_v_rspar_line2-selname,

y_k_p TO y_v_rspar_line2-kind,

y_k_i TO y_v_rspar_line2-sign ,

y_k_eq TO y_v_rspar_line2-option,

y_p_bfil TO y_v_rspar_line2-low.

APPEND y_v_rspar_line2 TO y_v_rspar_tab2.

CLEAR y_v_rspar_line2.

MOVE: y_k_parm11 TO y_v_rspar_line2-selname,

y_k_p TO y_v_rspar_line2-kind,

y_k_i TO y_v_rspar_line2-sign ,

y_k_eq TO y_v_rspar_line2-option,

y_v_fill TO y_v_rspar_line2-low.

APPEND y_v_rspar_line2 TO y_v_rspar_tab2.

MOVE: y_k_parm12 TO y_v_rspar_line2-selname,

y_k_p TO y_v_rspar_line2-kind,

y_k_i TO y_v_rspar_line2-sign ,

y_k_eq TO y_v_rspar_line2-option,

y_v_count1 TO y_v_rspar_line2-low.

APPEND y_v_rspar_line2 TO y_v_rspar_tab2.

IF sy-batch = 'X'.

  • Insert program RM06IBI0

SUBMIT ypuuprr0200 USING SELECTION-SCREEN '1000'

WITH SELECTION-TABLE y_v_rspar_tab2

AND RETURN

VIA JOB y_k_jobname

NUMBER y_v_jobcount.

ENDIF.

IF sy-subrc EQ y_k_zero.

MOVE: sy-datum TO y_t_starttime-sdlstrtdt,

sy-uzeit TO y_t_starttime-sdlstrttm,

y_k_x TO y_v_starttim.

  • Close job

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

jobcount = y_v_jobcount

jobname = y_k_jobname

strtimmed = y_v_starttim

targetsystem = y_v_host

EXCEPTIONS

cant_start_immediate = 01

invalid_startdate = 02

jobname_missing = 03

job_close_failed = 04

job_nosteps = 05

job_notex = 06

lock_failed = 07

OTHERS = 99.

ENDIF. "if sy-subrc eq 0

*if job not created properly delete the job

IF sy-subrc NE y_k_zero.

CALL FUNCTION 'BP_JOB_DELETE'

EXPORTING

jobcount = y_v_jobcount

jobname = y_k_jobname

EXCEPTIONS

cant_delete_event_entry = 1

cant_delete_job = 2

cant_delete_joblog = 3

cant_delete_steps = 4

cant_delete_time_entry = 5

cant_derelease_successor = 6

cant_enq_predecessor = 7

cant_enq_successor = 8

cant_enq_tbtco_entry = 9

cant_update_predecessor = 10

cant_update_successor = 11

commit_failed = 12

jobcount_missing = 13

jobname_missing = 14

job_does_not_exist = 15

job_is_already_running = 16

no_delete_authority = 17

OTHERS = 18.

ENDIF. "IF sy-subrc NE 0.

*Check for Foreground execution

IF sy-batch NE y_k_x.

DO.

IF sy-index EQ '10' OR y_v_fill1 > y_v_fill.

EXIT.

ELSE.

WAIT UP TO 3 SECONDS.

ENDIF.

*Fetch data from APQI

SELECT qid groupid qstate

INTO CORRESPONDING FIELDS OF TABLE y_i_apqi1

FROM apqi

WHERE groupid EQ y_p_grp

AND datatyp EQ 'BDC'

AND progid EQ 'RM06IBI0'

AND creator EQ sy-uname

AND credate EQ sy-datum.

DESCRIBE TABLE y_i_apqi1 LINES y_v_fill1.

ENDDO.

*Check new entry in table

IF y_v_fill1 > y_v_fill.

READ TABLE y_i_apqi1 INDEX y_v_fill1 INTO y_wa_apqi1.

IF sy-subrc EQ 0.

APPEND y_wa_apqi1 TO y_i_apqi2.

ENDIF.

ENDIF.

*check if table is empty

IF y_i_apqi2 IS INITIAL.

MESSAGE text-035 TYPE y_k_s.

LEAVE LIST-PROCESSING.

ELSE.

READ TABLE y_i_apqi2 INDEX 1 INTO y_wa_apqi1.

ENDIF.

*check if Session is finished

DO.

IF sy-index EQ '10' OR y_wa_apqi1-qstate EQ 'F' OR

y_wa_apqi1-qstate EQ 'E'.

EXIT.

ELSE.

WAIT UP TO 3 SECONDS.

ENDIF.

*Read table y_i_apqi1 into y_wa_apqi1 index 1.

SELECT qid groupid qstate

INTO CORRESPONDING FIELDS OF TABLE y_i_apqi2

FROM apqi

WHERE qid EQ y_wa_apqi1-qid AND

( qstate EQ 'F' OR qstate EQ 'E').

IF sy-subrc EQ 0.

EXIT.

ENDIF.

ENDDO.

*read table with status finished

READ TABLE y_i_apqi2 INDEX 1 INTO y_wa_apqi1.

IF y_wa_apqi1-qstate NE 'F' AND y_wa_apqi1-qstate NE 'E'.

MESSAGE text-036 TYPE y_k_s.

LEAVE LIST-PROCESSING.

ELSE.

*Use function to read session log

CALL FUNCTION 'YTI_BATCH_INPUT_SESSION_LOGS'

EXPORTING

  • NAME = y_p_grp

client = sy-mandt

date_from = sy-datum

date_to = sy-datum

qid = y_wa_apqi1-qid

status = y_k_r

TABLES

apqltab = y_i_apqi2

bdclm = y_i_bdclm

EXCEPTIONS

invalid_data = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE s305(00) WITH text-001 text-009 text-010.

ENDIF.

Thanks and regards,

Vamsi.

former_member214131
Active Contributor
0 Kudos

Hello,

I have faced a similar problem in my previous loading & observed that several fields are missing in the BI structures concerning conditions and failed to upload multiple conditions each with many scales.

So I have loaded using following method:

Load the INFOREC with zero price in first step

In second step load the conditions with IDoc: COND_A/CONDA02.

Hope this helps.

Best Regards, Murugesh