Estes ultimos dias precisei de utilizar a BAPI BAPI_INSPOPER_RECORDRESULTS e infelizmente achei pouca informação sobre ela, mas juntando tudo consegui resolver o problema.
Necessidade de utiliza-la foi para inserir resultados em um lote de controle especifico.
Foi necessário copiar os resultados de um lote de controle X e colar no lote de controle Y.
Processo manual para fazer o desejado.
Entrar na transação QA32, ver algum lote de controle que tenha resultados, entrar em outro lote de controle que deseja inserir resultados e ir copiando os valores de cada caracteristica de resultado no lote de controle que desejamos salvar.
Código da utilização da BAPI:
TYPES: BEGIN OF ty_qals,
  prueflos  TYPE qals-prueflos,
  ktextlos  TYPE qals-ktextlos,
  werk      TYPE qals-werk,
  matnr     TYPE qals-matnr,
  herkunft  TYPE qals-herkunft,
  losmenge  TYPE qals-losmenge,
  lifnr     TYPE qals-lifnr,
  ekorg     TYPE qals-ekorg,
  ebeln     TYPE qals-ebeln,
  ebelp     TYPE qals-ebelp,
  mblnr     TYPE qals-mblnr,
  enstehdat TYPE qals-enstehdat,
END OF ty_qals,
 BEGIN OF ty_inspointdata .
        INCLUDE STRUCTURE bapi2045l4.
TYPES: END OF ty_inspointdata.
DATA: t_qals_qa01    TYPE STANDARD TABLE OF ty_qals.
DATA: t_sample_results  TYPE STANDARD TABLE OF bapi2045d3,
      t_bapireturn2     TYPE bapiret2,
      t_ireturntable    TYPE STANDARD TABLE OF bapiret2,
      t_inspointdata    TYPE STANDARD TABLE OF ty_inspointdata,
      wa_sample_results LIKE LINE OF t_sample_results,
      wa_inspointdata   LIKE LINE OF t_inspointdata,
      wa_return         LIKE bapiret2,
      wa_ireturntable   LIKE LINE OF t_ireturntable,
      wa_qals_qa01      LIKE LINE OF t_qals_qa01,
      l_num(4)          TYPE n,
      l_qibpvornr       TYPE qibpvornr,
      t_results         TYPE STANDARD TABLE OF bapi2045d2,
      wa_results        LIKE LINE OF t_results,
      v_lote_c          TYPE qals-prueflos.
l_num = 10.
l_qibpvornr = l_num.
READ TABLE t_qals_qa01 INTO wa_qals_qa01 INDEX 1.
CLEAR: t_results[],
t_inspointdata[].
* Lê resultados inseridos na QA01
CALL FUNCTION 'BAPI_INSPOPER_GETDETAIL'
  EXPORTING
    insplot           = wa_qals_qa01-prueflos "Lote de controle ja com resultados
    inspoper          = l_qibpvornr
    read_insppoints   = 'X'
    read_char_results = 'X'
    char_filter_no    = '1   '
    char_filter_tcode = 'QE11'
    insppoint_from    = 0
  IMPORTING
    return            = wa_return
  TABLES
    insppoints        = t_inspointdata
    char_results      = t_results.
IF wa_return-id = 'E'.
*  Caso não consiga ler os resultados, gera log de erro
ENDIF.
* Prepara para inserir resultados lote gerado no Batchinput
LOOP AT t_results INTO wa_results.
  wa_results-insplot    = v_lote_c. "Lote de controle que receberá resultados
  MOVE-CORRESPONDING wa_results TO wa_sample_results.
  MODIFY t_results FROM wa_results INDEX sy-tabix.
  APPEND wa_sample_results TO t_sample_results.
ENDLOOP.
READ TABLE t_inspointdata INTO wa_inspointdata INDEX 1.
wa_inspointdata-inspoper = l_qibpvornr.
wa_inspointdata-insplot  = v_lote_c. "Lote de controle que receberá resultados
wa_inspointdata-userc1   = '1'.
wa_inspointdata-userd1   = sy-datum.
wa_inspointdata-usert1   = sy-uzeit.
* Inserir resultados no lote gerado pelo batchinput
CALL FUNCTION 'BAPI_INSPOPER_RECORDRESULTS'
  EXPORTING
    insplot        = v_lote_c "Lote de controle que receberá resultados
    inspoper       = l_qibpvornr "Operação (Ex. = 10)
    insppointdata  = wa_inspointdata
  IMPORTING
    return         = t_bapireturn2
  TABLES
    char_results   = t_results
    sample_results = t_sample_results
    returntable    = t_ireturntable.
IF NOT t_ireturntable[] IS INITIAL.
  READ TABLE t_ireturntable INTO wa_ireturntable WITH KEY type = 'E'.
  IF sy-subrc = 0.
* Caso dê erro, gerar log de erro.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait   = 'X'
      IMPORTING
        return = t_bapireturn2.
  ENDIF.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait   = 'X'
    IMPORTING
      return = t_bapireturn2.
ENDIF.
FREE: t_sample_results,
      t_inspointdata.
Assinar:
Postar comentários (Atom)
Oi Adriano aqui é o Rômulo da Usiminas,
ResponderExcluirAgora é a minha vez de sofrer um pouco com esta BAPI. Só que meu caso é mais complicado, tenho que receber resultados e a DU por RFC.
Seu post me fez lembrar de um detalhe que estava esquecendo, espero que resolva meu problema atual.
Abraços,
Rômulo
Desde 2007 abapeando por ai.