11-20-2007 6:06 AM
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.
11-20-2007 6:10 AM
11-20-2007 6:25 AM
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.
11-20-2007 6:46 AM
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