[56009] in SAPr3-news

home help back first fref pref prev next nref lref last post

=?iso-8859-1?q?Re:_Arbeitspl=E4ne_anlegen_mit_BAPI=5FROUTING=5FCREATE=3F?=

daemon@ATHENA.MIT.EDU (Tony)
Fri Nov 18 05:49:57 2005

To: sapr3-news@mit.edu
Date: 18 Nov 2005 02:49:42 -0800
From: "Tony" <reeflex@gmx.de>
Message-ID: <1132310982.720441.131700@o13g2000cwo.googlegroups.com>

Hallo zusammen,

also ich geb dir mal ein code-schnipsel wie das bei uns funktioniert
hat
sind auch Daten aus tabgetrennten .txt files gewesen.
Achtung der ist etwas l=E4nger:

*****************SNIP******************************************************=
******
data: i_plko like s_plko occurs 0 with header line.
data: i_plpo like s_plpo occurs 0 with header line.
data: w_plpo like s_plpo occurs 0 with header line.
data: i_plmk like s_plmk occurs 0 with header line.
data: i_plmz like s_plmz occurs 0 with header line.
data: i_mapl like s_mapl occurs 0 with header line.
*DATA: i_message LIKE bapi_matreturn2 OCCURS 0 WITH HEADER LINE.


data: w_bapi1012_tsk_c like bapi1012_tsk_c occurs 0 with header line,
      w_bapi1012_opr_c like bapi1012_opr_c occurs 0 with header line,
      w_bapi1012_mtk_c like bapi1012_mtk_c occurs 0 with header line,
      w_bapi1191_cha_c like bapi1191_cha_c occurs 0 with header line,

      t_bapi1012_tsk_c like w_bapi1012_tsk_c occurs 0 with header line,
      t_bapi1012_opr_c like w_bapi1012_opr_c occurs 0 with header line,
      t_bapi1012_mtk_c like w_bapi1012_mtk_c occurs 0 with header line,
      t_bapi1191_cha_c like w_bapi1191_cha_c occurs 0 with header line,

      return like bapiret2 occurs 0 with header line.
.


data: w_filename          type string
     .

*-----------------------------------------------------------------------
* Selektionskriterien
*-----------------------------------------------------------------------
* Selektion
selection-screen begin of block bl_001 with frame title text-001.

parameters:
* Pfad der Inputdatei
  p_path      type rlgrap-filename
              default 'C:\SAP_DE_Upload\'
 =2E
* Maximale Anzahl Zeilen               .
selection-screen skip 1.
parameters:
            p_rows    type i        default 0
           .

* Fehlermeldungen anzeigen ?
selection-screen begin of line.
selection-screen comment (30) text-p01.
selection-screen position pos_low.
parameter   p_msg as checkbox default ' '.
selection-screen end of line.

selection-screen end of block bl_001.

*-----------------------------------------------------------------------
start-of-selection.
*-----------------------------------------------------------------------
* Daten lesen
  perform daten_lesen.

* Daten verarbeiten
  perform daten_verarbeiten.


*&---------------------------------------------------------------------*
*&      Form  daten_lesen
*&---------------------------------------------------------------------*
*       upload Dateien
*----------------------------------------------------------------------*
form daten_lesen.

* MAPL
  refresh i_mapl.
  concatenate p_path 'mapl.txt' into w_filename.
  call function 'GUI_UPLOAD'
    exporting
      filename            =3D w_filename
      has_field_separator =3D 'X'
    tables
      data_tab            =3D i_mapl.
  if sy-subrc <> 0.
    break-point.
  endif.
  sort i_mapl by matnr.

* PLKO
  refresh i_plko.
  concatenate p_path 'plko.txt' into w_filename.
  call function 'GUI_UPLOAD'
    exporting
      filename            =3D w_filename
      has_field_separator =3D 'X'
    tables
      data_tab            =3D i_plko.
  if sy-subrc <> 0.
    break-point.
  endif.
  sort i_plko by plnty plnnr plnal.

* PLMK
  refresh i_plmk.
  concatenate p_path 'plmk.txt' into w_filename.
  call function 'GUI_UPLOAD'
    exporting
      filename            =3D w_filename
      has_field_separator =3D 'X'
    tables
      data_tab            =3D i_plmk
    exceptions
      others              =3D 17.
  if sy-subrc <> 0.
    break-point.
  endif.
  sort i_plmk by plnty plnnr plnkn kzeinstell merknr zaehl.

* PLMZ
  refresh i_plmz.
  concatenate p_path 'plmz.txt' into w_filename.
  call function 'GUI_UPLOAD'
    exporting
      filename            =3D w_filename
      has_field_separator =3D 'X'
    tables
      data_tab            =3D i_plmz
    exceptions
      others              =3D 17.
  if sy-subrc <> 0.
    break-point.
  endif.
  sort i_plmz by plnty plnnr zuonr zaehl.

* PLPO
  refresh i_plpo.
  concatenate p_path 'plpo.txt' into w_filename.
  call function 'GUI_UPLOAD'
    exporting
      filename            =3D w_filename
      has_field_separator =3D 'X'
    tables
      data_tab            =3D i_plpo
    exceptions
      others              =3D 17.
  if sy-subrc <> 0.
    break-point.
  endif.
  sort i_plpo by plnty plnnr plnal vornr.

endform.                    " daten_lesen

*&---------------------------------------------------------------------*
*&      Form  daten_verarbeiten_mard
*&---------------------------------------------------------------------*
*       BI Daten erzeugen und
*       mit Call Transaction verarbeiten
*----------------------------------------------------------------------*
form daten_verarbeiten.
  data: l_tcode                type sy-tcode
       ,l_mode(1)              type c
       ,l_count(10)            type p
       ,l_dynfld(20)           type c
       ,l_datum(10)            type c
       ,l_ok                   like flg_ok
       ,l_plnal(2)             type n
       ,l_group                type  bapi1012_tsk_c-task_list_group
       ,l_groupcounter         type  bapi1012_tsk_c-group_counter
       ,l_new_plan             type bapiret2-message_v4
       , l_bismt(18)            type c
       ,l_zeit                 type sy-uzeit
       .


* Pr=FCfplan anlegen oder =E4ndern
  write sy-datum to l_datum.
  l_count =3D 0.
  loop at i_mapl where plnty ne 'Q'.
    refresh w_plpo.
    clear: l_plnal.

*   Materialnummer ermitteln
    write i_mapl-matnr to l_bismt.
    select single matnr
    into mara-matnr
    from mara
    where bismt =3D l_bismt.
    if sy-subrc ne 0 .
      write: at / 'Material nicht vorhanden:'
            ,     i_mapl-matnr.
      .
      continue.
    endif.

*   Arbeitsplan schon vorhanden ?
    select single plnnr
    into plko-plnnr
    from plko
    where plnnr_alt =3D i_mapl-plnnr
    and   plnal =3D i_mapl-plnal.
    if sy-subrc eq 0.
      write: at / i_mapl-matnr
                 ,' bereits vorhanden:' color col_positive
                 ,mara-matnr
                 ,i_mapl-plnal
                 .
      continue.
    endif.

*   PLKO lesen
    read table i_plko with key plnty =3D i_mapl-plnty
                               plnnr =3D i_mapl-plnnr
                               plnal =3D i_mapl-plnal.
    if sy-subrc ne 0.
      write: at / i_mapl-matnr , 'PLKO nicht vorhanden'.
      continue.
    endif.

    refresh t_bapi1012_tsk_c.
    refresh t_bapi1012_mtk_c.
    refresh t_bapi1012_opr_c.

*   PLPO lesen
*    LOOP AT i_plpo INTO w_plpo WHERE  plnnr =3D i_mapl-plnnr
*                                 AND  plnty =3D i_mapl-plnty
*                                 AND  plnal =3D l_plnal.
*
*      APPEND w_plpo.
*    ENDLOOP.

*   Kopfdaten
*    w_bapi1012_tsk_c-task_list_group         =3D plko-plnnr.
    w_bapi1012_tsk_c-group_counter           =3D i_mapl-plnal.
    w_bapi1012_tsk_c-valid_from              =3D sy-datum.
    w_bapi1012_tsk_c-valid_to_date           =3D '99991231'.
    w_bapi1012_tsk_c-plant                   =3D i_plko-werks.
    w_bapi1012_tsk_c-lot_size_from           =3D '1'.
    w_bapi1012_tsk_c-lot_size_to             =3D '99999999'.
    w_bapi1012_tsk_c-task_measure_unit       =3D i_plko-plnme.
    w_bapi1012_tsk_c-task_list_status        =3D i_plko-statu.
    w_bapi1012_tsk_c-task_list_usage         =3D i_plko-verwe.
    w_bapi1012_tsk_c-description             =3D i_plko-ktext.
    w_bapi1012_tsk_c-old_number_of_task_list =3D i_plko-plnnr.
    append w_bapi1012_tsk_c to t_bapi1012_tsk_c.

* Material - Plan Zuordnung
    w_bapi1012_mtk_c-material               =3D mara-matnr.
    w_bapi1012_mtk_c-plant                  =3D '6000' .
*    w_bapi1012_mtk_c-TASK_LIST_GROUP        =3D plko-plnnr.
*    w_bapi1012_mtk_c-group_counter          =3D i_mapl-plnal.
    w_bapi1012_mtk_c-valid_from             =3D sy-datum.
    w_bapi1012_mtk_c-valid_to_date          =3D '99991231'.
    append w_bapi1012_mtk_c to t_bapi1012_mtk_c.

*   Vorg=E4nge
    move i_mapl-plnal to l_plnal.
    loop at i_plpo into w_plpo where  plnty =3D i_mapl-plnty
                                 and  plnnr =3D i_mapl-plnnr
                                 and  plnal =3D l_plnal.
*      w_bapi1012_opr_c-task_list_group        =3D plko-plnnr.
      w_bapi1012_opr_c-group_counter          =3D i_mapl-plnal.
      w_bapi1012_opr_c-activity               =3D w_plpo-vornr.
      w_bapi1012_opr_c-control_key            =3D w_plpo-steus.
      w_bapi1012_opr_c-work_cntr              =3D w_plpo-arbpl.
      w_bapi1012_opr_c-plant                  =3D w_plpo-werks.
      w_bapi1012_opr_c-description            =3D w_plpo-ltxa1.
      w_bapi1012_opr_c-base_quantity          =3D w_plpo-bmsch.
      w_bapi1012_opr_c-operation_measure_unit =3D w_plpo-meinh.
      w_bapi1012_opr_c-valid_from             =3D sy-datum.
      w_bapi1012_opr_c-valid_to_date          =3D '99991231'.
      w_bapi1012_opr_c-denominator            =3D w_plpo-umren.
      w_bapi1012_opr_c-nominator              =3D w_plpo-umrez.
      w_bapi1012_opr_c-acttype_01             =3D w_plpo-lar01.
      w_bapi1012_opr_c-std_unit_01            =3D w_plpo-vge01.
      w_bapi1012_opr_c-std_value_01           =3D w_plpo-vgw01.

      w_bapi1012_opr_c-acttype_02             =3D w_plpo-lar02.
      w_bapi1012_opr_c-std_unit_02            =3D w_plpo-vge02.
      w_bapi1012_opr_c-std_value_02           =3D w_plpo-vgw02.

      w_bapi1012_opr_c-acttype_03             =3D w_plpo-lar03.
      w_bapi1012_opr_c-std_unit_03            =3D w_plpo-vge03.
      w_bapi1012_opr_c-std_value_03           =3D w_plpo-vgw03.

      w_bapi1012_opr_c-acttype_04             =3D w_plpo-lar04.
      w_bapi1012_opr_c-std_unit_04            =3D w_plpo-vge04.
      w_bapi1012_opr_c-std_value_04           =3D w_plpo-vgw04.

      w_bapi1012_opr_c-acttype_05             =3D w_plpo-lar05.
      w_bapi1012_opr_c-std_unit_05            =3D w_plpo-vge05.
      w_bapi1012_opr_c-std_value_05           =3D w_plpo-vgw05.

      w_bapi1012_opr_c-acttype_06             =3D w_plpo-lar06.
      w_bapi1012_opr_c-std_unit_06            =3D w_plpo-vge06.
      w_bapi1012_opr_c-std_value_06           =3D w_plpo-vgw06.

      append w_bapi1012_opr_c to t_bapi1012_opr_c.

    endloop.

*  Arbeitsplan ?
    call function 'BAPI_ROUTING_CREATE'
      importing
        group                        =3D l_group
        groupcounter                 =3D l_groupcounter
      tables
        task                         =3D  t_bapi1012_tsk_c
        materialtaskallocation       =3D  t_bapi1012_mtk_c
*   SEQUENCE                     =3D
        operation                    =3D  t_bapi1012_opr_c
*   SUBOPERATION                 =3D
*   REFERENCEOPERATION           =3D
*   WORKCENTERREFERENCE          =3D
*   COMPONENTALLOCATION          =3D
*   PRODUCTIONRESOURCE           =3D
*   INSPCHARACTERISTIC           =3D
*   TEXTALLOCATION               =3D
*   TEXT                         =3D
        return                       =3D return
              .
    if sy-subrc =3D 0.
      commit work and wait.
    endif.
********************************end
snip**********************************************


vielleicht hilft dir das weiter.

Gruss
Tony W.


home help back first fref pref prev next nref lref last post