BAPI创建CLASS和CHARACTERISTICS
上一篇 / 下一篇 2008-06-07 21:29:20 / 个人分类:ABAP BAPI
REPORT zcmm_00004 MESSAGE-ID 00 .
}|8F+T_|0ITPUB个人空间)[}R{hVW+d
ITPUB个人空间'h)yoor%yr:~2b
INCLUDE ole2incl.ITPUB个人空间 y {M)m8s0O0?v+E
6`D(J ]j0DATA : BEGIN OF itab_sheet OCCURS 0 ,ITPUB个人空间#[,\(S rmp1A7~&f H
sheet_name(20),
6B8|"{.Ev0 max_row TYPE i,
8W r@(Qj2^0 max_col TYPE i,
2y@iYh*m)`0 END OF itab_sheet.ITPUB个人空间3F xVgv&r
ITPUB个人空间2[v,D;}5uDY
DATA : BEGIN OF sheet_line,
:n&oW ur|2` g0 name(30),
+a Sc3na!U X)~Wrp0 changenumber(12),ITPUB个人空间#l!fcw~kB
validfrom(8),
~A$_*r*K J H,yJQ3TP0 status(1),ITPUB个人空间q7F%l3? T5Wp
datatype(4),ITPUB个人空间x1k5B(`A"Di3{6}8r R
numberofchars(5),ITPUB个人空间LI4Tz!rX
valueassignment(1),ITPUB个人空间n-['{e4MH
language(2),
3^s#R\h2e0 description(30),ITPUB个人空间WcD8py%YX
value(20),ITPUB个人空间.{X8O5iCv$qj(I
valuelanguage(2),
*W|;\s&|3Z0 valuedescription(30),ITPUB个人空间$YGlo4_%V4F
END OF sheet_line,ITPUB个人空间l7aHAW E
itab_characteristics LIKE TABLE OF sheet_line WITH HEADER LINE.
8`7j;|I*I'u:pw0DATA : BEGIN OF class_line,
Wk:U1G7H+Ii0 classnum(18),ITPUB个人空间C2`#S7Mg
classtype(3),
Q4q|:yR\+q0 changenum(12),
^&aK-On[x0 classtpfr(8),
#~UX4b"O\*l&_2Q&Sq0 language(2),ITPUB个人空间+L8}U aUQZ-K
desc(40),
]0O6}q_ ER0 status(1),ITPUB个人空间2O6L$e,|Z
validfr(8),
\'H P pkF*g1E0 validto(8),ITPUB个人空间t*{&G+~!|u!q9g
charact(30),ITPUB个人空间0a!WL J0{4bX
END OF class_line,ITPUB个人空间(H,p3H J/uI,d3y8NR%M
itab_class LIKE TABLE OF class_line WITH HEADER LINE.
1c5w\5@eC}0DATA : BEGIN OF table_line.ITPUB个人空间LEj|sNZ;Ca$Ni.U
INCLUDE STRUCTURE alsmex_tabline .ITPUB个人空间eGuWGpz
DATA : END OF table_line.
{3LP)p-Y6d-x(Q`m0
m'E6krg ZIt8n;r g:u0DATA simple_tab LIKE TABLE OF table_line.ITPUB个人空间4wL3~.}S il%G
ITPUB个人空间EDxw?W0F@[#c@
F1]5V"d3m0DATA : charactdetail LIKE TABLE OF bapicharactdetail WITH HEADER LINE,
}Ff`k l2mO0 changenumber LIKE bapicharactkey-changenum,ITPUB个人空间1qx j*O}
charactdescr TYPE TABLE OF bapicharactdescr WITH HEADER LINE,
s!gdj7}'\C0 charactvalueschar TYPE TABLE OF bapicharactvalueschar WITH HEADERITPUB个人空间A+r+@TO` F
LINE,
.X'Q\9Aj}CS0 charactvaluesdescr TYPE TABLE OF bapicharactvaluesdescr WITH
ePje%u#H:v0HEADER LINE,
$tD2W'ZR0 valid_date TYPE bapicharactkey-keydate,
I)t%H9Wh A0return TYPE TABLE OF bapiret2 WITH HEADER LINE.ITPUB个人空间~![}M4b d4jX
ITPUB个人空间`JH W u6v iY,{
DATA : classnum TYPE bapi_class_key-classnum,ITPUB个人空间TS;HHI%C5s$g
classtype TYPE bapi_class_key-classtype,
{"S*i8}x!eIAu7o0 changenum TYPE bapi1003_key-changenumber,ITPUB个人空间,GQg?c$S@
keywordsold LIKE TABLE OF bapi1003_catch_r WITH HEADER LINE,
\(a1D L%`U4~^RC9_0 charactsold LIKE TABLE OF bapi1003_charact_r WITH HEADER
){;Oib%i(b My `E0LINE,ITPUB个人空间u'`!of4fdD
charactvalueold LIKE TABLE OF bapi1003_char_val_r WITHITPUB个人空间\3i/l#s2lHlOcI
HEADER LINE,ITPUB个人空间sJi:i2Lfm
keywords LIKE TABLE OF bapi1003_catch WITH HEADER LINE,ITPUB个人空间 rq?4K^(V'| S
characts LIKE TABLE OF bapi1003_charact WITH HEADER LINE,
#s2^)d~)t f0 charactsnew LIKE TABLE OF bapi1003_charact_new WITH HEADER LINE
!Jns%R n Rv0,
'{9Ff([0O4P R0 keywordsnew LIKE TABLE OF bapi1003_catch_new WITH HEADER LINE,
b)`iD/Nt;EmP0 basicdata LIKE TABLE OF bapi1003_basic WITH HEADER LINE,
;\S4^ F8wt0 basicdatanew LIKE TABLE OF bapi1003_basic_new WITH HEADER LINE.ITPUB个人空间4z)Np.G5Z(N2j&^,?H
DATA : sheetname TYPE rlgrap-filename ,
2L7s `M}1Ug+[0 begin_col TYPE i VALUE '1',
{1p9z2@`vn0 begin_row TYPE i VALUE '11'.
e"L[hFs{ A0ITPUB个人空间)aa D:N6Gx
*-----------------------------------------------------------------------ITPUB个人空间y"K)E7M^9i
* selection screen
D`tfUVo-oP+U0*-----------------------------------------------------------------------
UPK\)n0{D0PARAMETERS :
i}x%].IV0 charc_c RADIOBUTTON GROUP rad1 ,ITPUB个人空间wl;WeX6E]5]
charc_m RADIOBUTTON GROUP rad1 ,
J3F N2p'\z'KD_8n0 class_c RADIOBUTTON GROUP rad1 ,
e [?b'p/@$Kq)e0 class_m RADIOBUTTON GROUP rad1 ,
T+\%be#g]-g0 filename TYPE rlgrap-filename .
:Ul9q@0Qo0ITPUB个人空间`:h"[_RFR
*-----------------------------------------------------------------------
Pl^K,cj;E0* initial screen
+?$Oe[J[ Z0*-----------------------------------------------------------------------
_(R'YaCK#q&C(]0INITIALIZATION.ITPUB个人空间)Y)_!B&B_ F;N$o
ITPUB个人空间5u|[gK)`B)z)Q
filename = 'c:\MM_CLASS_UPLOAD_TEMPLE.XLS'.ITPUB个人空间Xm+Q L&v;GB.Sy4G6L
ITPUB个人空间_jT[8HrN
ITPUB个人空间T:D&T9ej"LQ,?
bqk\uj0START-OF-SELECTION.
{5Y&L9^id!e0*-----------------------------------------------------------------------
UxPKIif7k0* main logic for create/modify characteristics/class
d2?(A6D,Q0*-----------------------------------------------------------------------
r+PJ#dWp ~0ITPUB个人空间V&ZM)r7HB"Y[
PERFORM. get_sheets_desc USING filename.
|^8Gc1YLH8e0ITPUB个人空间wu)XmJ&J
IF charc_c = 'X' .
*?kO\\0Jg0 sheetname = 'MM_CHARACTERISTICS'.ITPUB个人空间/vf&G6d:A^:cqu
PERFORM. whether_have_sheet USING sheetname.ITPUB个人空间-y:N Q nP:L:ZT~
PERFORM. upload_excel TABLES itab_characteristics USING sheetnameITPUB个人空间\!S4a2{-u-?%k L
begin_col begin_row.ITPUB个人空间 U4L"X3gXI)f6e
PERFORM. create_character .ITPUB个人空间s/H$ebK
ENDIF.
3C/~ cWX0 IF charc_m = 'X' .
*ZP$l`Uu0 sheetname = 'MM_CHARACTERISTICS'.
*Ps4xO)S~ q[#Q0 PERFORM. whether_have_sheet USING sheetname.
W h qd,`MS@ Z0 PERFORM. upload_excel TABLES itab_characteristics USING sheetname
1[ L,Ta9s;f%~ Jp%IwD0begin_col begin_row.ITPUB个人空间$R P7q8w,n1b2s5z!w
PERFORM. modify_character .ITPUB个人空间 jA4h*z7{ xk#st
ENDIF.ITPUB个人空间c2W R0A1ko
IF class_c = 'X'.
6mq'^]Z0 sheetname = 'MM_CLASS' .ITPUB个人空间,o;[*f2J~3l r ~
PERFORM. whether_have_sheet USING sheetname.ITPUB个人空间f/kF-W-F9hs:q.I
PERFORM. upload_excel TABLES itab_class USING sheetname begin_col
nQ1WWA?*_tN0begin_row .ITPUB个人空间)B%k`k Qk$oy9^P1]"V
PERFORM. create_class .
5H9@8[e0JV7vD0 ENDIF.ITPUB个人空间 ]&E I }`0o+T M,j
IF class_m = 'X'.ITPUB个人空间#J*AH}PF7w*\0Iz
sheetname = 'MM_CLASS' .
f y7Ln'N!w'_([1_&H0 PERFORM. whether_have_sheet USING sheetname.ITPUB个人空间@%aE7h|
PERFORM. upload_excel TABLES itab_class USING sheetname begin_col
GG8e0G3U,ol,v0begin_row .ITPUB个人空间(Z{@Ey~Z
PERFORM. modify_class .
*h~9Zf{K&e8Bn e0 ENDIF.
H$o,K vNEF#t7zv0ITPUB个人空间 aW@.m[n!v2a
END-OF-SELECTION.
F.RN,aCj+w0*&--------------------------------------------------------------------*ITPUB个人空间-F@vM/wa6yA o
*& Form. whether_have_sheet
Q,J_5N'\Al'E"H0*&--------------------------------------------------------------------*
1zQ-i]4Gl0* text
{ L6~|T\7mR T0*---------------------------------------------------------------------*
8h%U_v)[!|0* -->SHEETNAME text
}|8F+T_|0ITPUB个人空间)[}R{hVW+d
ITPUB个人空间'h)yoor%yr:~2b
INCLUDE ole2incl.ITPUB个人空间 y {M)m8s0O0?v+E
6`D(J ]j0DATA : BEGIN OF itab_sheet OCCURS 0 ,ITPUB个人空间#[,\(S rmp1A7~&f H
sheet_name(20),
6B8|"{.Ev0 max_row TYPE i,
8W r@(Qj2^0 max_col TYPE i,
2y@iYh*m)`0 END OF itab_sheet.ITPUB个人空间3F xVgv&r
ITPUB个人空间2[v,D;}5uDY
DATA : BEGIN OF sheet_line,
:n&oW ur|2` g0 name(30),
+a Sc3na!U X)~Wrp0 changenumber(12),ITPUB个人空间#l!fcw~kB
validfrom(8),
~A$_*r*K J H,yJQ3TP0 status(1),ITPUB个人空间q7F%l3? T5Wp
datatype(4),ITPUB个人空间x1k5B(`A"Di3{6}8r R
numberofchars(5),ITPUB个人空间LI4Tz!rX
valueassignment(1),ITPUB个人空间n-['{e4MH
language(2),
3^s#R\h2e0 description(30),ITPUB个人空间WcD8py%YX
value(20),ITPUB个人空间.{X8O5iCv$qj(I
valuelanguage(2),
*W|;\s&|3Z0 valuedescription(30),ITPUB个人空间$YGlo4_%V4F
END OF sheet_line,ITPUB个人空间l7aHAW E
itab_characteristics LIKE TABLE OF sheet_line WITH HEADER LINE.
8`7j;|I*I'u:pw0DATA : BEGIN OF class_line,
Wk:U1G7H+Ii0 classnum(18),ITPUB个人空间C2`#S7Mg
classtype(3),
Q4q|:yR\+q0 changenum(12),
^&aK-On[x0 classtpfr(8),
#~UX4b"O\*l&_2Q&Sq0 language(2),ITPUB个人空间+L8}U aUQZ-K
desc(40),
]0O6}q_ ER0 status(1),ITPUB个人空间2O6L$e,|Z
validfr(8),
\'H P pkF*g1E0 validto(8),ITPUB个人空间t*{&G+~!|u!q9g
charact(30),ITPUB个人空间0a!WL J0{4bX
END OF class_line,ITPUB个人空间(H,p3H J/uI,d3y8NR%M
itab_class LIKE TABLE OF class_line WITH HEADER LINE.
1c5w\5@eC}0DATA : BEGIN OF table_line.ITPUB个人空间LEj|sNZ;Ca$Ni.U
INCLUDE STRUCTURE alsmex_tabline .ITPUB个人空间eGuWGpz
DATA : END OF table_line.
{3LP)p-Y6d-x(Q`m0
m'E6krg ZIt8n;r g:u0DATA simple_tab LIKE TABLE OF table_line.ITPUB个人空间4wL3~.}S il%G
ITPUB个人空间EDxw?W0F@[#c@
F1]5V"d3m0DATA : charactdetail LIKE TABLE OF bapicharactdetail WITH HEADER LINE,
}Ff`k l2mO0 changenumber LIKE bapicharactkey-changenum,ITPUB个人空间1qx j*O}
charactdescr TYPE TABLE OF bapicharactdescr WITH HEADER LINE,
s!gdj7}'\C0 charactvalueschar TYPE TABLE OF bapicharactvalueschar WITH HEADERITPUB个人空间A+r+@TO` F
LINE,
.X'Q\9Aj}CS0 charactvaluesdescr TYPE TABLE OF bapicharactvaluesdescr WITH
ePje%u#H:v0HEADER LINE,
$tD2W'ZR0 valid_date TYPE bapicharactkey-keydate,
I)t%H9Wh A0return TYPE TABLE OF bapiret2 WITH HEADER LINE.ITPUB个人空间~![}M4b d4jX
ITPUB个人空间`JH W u6v iY,{
DATA : classnum TYPE bapi_class_key-classnum,ITPUB个人空间TS;HHI%C5s$g
classtype TYPE bapi_class_key-classtype,
{"S*i8}x!eIAu7o0 changenum TYPE bapi1003_key-changenumber,ITPUB个人空间,GQg?c$S@
keywordsold LIKE TABLE OF bapi1003_catch_r WITH HEADER LINE,
\(a1D L%`U4~^RC9_0 charactsold LIKE TABLE OF bapi1003_charact_r WITH HEADER
){;Oib%i(b My `E0LINE,ITPUB个人空间u'`!of4fdD
charactvalueold LIKE TABLE OF bapi1003_char_val_r WITHITPUB个人空间\3i/l#s2lHlOcI
HEADER LINE,ITPUB个人空间sJi:i2Lfm
keywords LIKE TABLE OF bapi1003_catch WITH HEADER LINE,ITPUB个人空间 rq?4K^(V'| S
characts LIKE TABLE OF bapi1003_charact WITH HEADER LINE,
#s2^)d~)t f0 charactsnew LIKE TABLE OF bapi1003_charact_new WITH HEADER LINE
!Jns%R n Rv0,
'{9Ff([0O4P R0 keywordsnew LIKE TABLE OF bapi1003_catch_new WITH HEADER LINE,
b)`iD/Nt;EmP0 basicdata LIKE TABLE OF bapi1003_basic WITH HEADER LINE,
;\S4^ F8wt0 basicdatanew LIKE TABLE OF bapi1003_basic_new WITH HEADER LINE.ITPUB个人空间4z)Np.G5Z(N2j&^,?H
DATA : sheetname TYPE rlgrap-filename ,
2L7s `M}1Ug+[0 begin_col TYPE i VALUE '1',
{1p9z2@`vn0 begin_row TYPE i VALUE '11'.
e"L[hFs{ A0ITPUB个人空间)aa D:N6Gx
*-----------------------------------------------------------------------ITPUB个人空间y"K)E7M^9i
* selection screen
D`tfUVo-oP+U0*-----------------------------------------------------------------------
UPK\)n0{D0PARAMETERS :
i}x%].IV0 charc_c RADIOBUTTON GROUP rad1 ,ITPUB个人空间wl;WeX6E]5]
charc_m RADIOBUTTON GROUP rad1 ,
J3F N2p'\z'KD_8n0 class_c RADIOBUTTON GROUP rad1 ,
e [?b'p/@$Kq)e0 class_m RADIOBUTTON GROUP rad1 ,
T+\%be#g]-g0 filename TYPE rlgrap-filename .
:Ul9q@0Qo0ITPUB个人空间`:h"[_RFR
*-----------------------------------------------------------------------
Pl^K,cj;E0* initial screen
+?$Oe[J[ Z0*-----------------------------------------------------------------------
_(R'YaCK#q&C(]0INITIALIZATION.ITPUB个人空间)Y)_!B&B_ F;N$o
ITPUB个人空间5u|[gK)`B)z)Q
filename = 'c:\MM_CLASS_UPLOAD_TEMPLE.XLS'.ITPUB个人空间Xm+Q L&v;GB.Sy4G6L
ITPUB个人空间_jT[8HrN
ITPUB个人空间T:D&T9ej"LQ,?
bqk\uj0START-OF-SELECTION.
{5Y&L9^id!e0*-----------------------------------------------------------------------
UxPKIif7k0* main logic for create/modify characteristics/class
d2?(A6D,Q0*-----------------------------------------------------------------------
r+PJ#dWp ~0ITPUB个人空间V&ZM)r7HB"Y[
PERFORM. get_sheets_desc USING filename.
|^8Gc1YLH8e0ITPUB个人空间wu)XmJ&J
IF charc_c = 'X' .
*?kO\\0Jg0 sheetname = 'MM_CHARACTERISTICS'.ITPUB个人空间/vf&G6d:A^:cqu
PERFORM. whether_have_sheet USING sheetname.ITPUB个人空间-y:N Q nP:L:ZT~
PERFORM. upload_excel TABLES itab_characteristics USING sheetnameITPUB个人空间\!S4a2{-u-?%k L
begin_col begin_row.ITPUB个人空间 U4L"X3gXI)f6e
PERFORM. create_character .ITPUB个人空间s/H$ebK
ENDIF.
3C/~ cWX0 IF charc_m = 'X' .
*ZP$l`Uu0 sheetname = 'MM_CHARACTERISTICS'.
*Ps4xO)S~ q[#Q0 PERFORM. whether_have_sheet USING sheetname.
W h qd,`MS@ Z0 PERFORM. upload_excel TABLES itab_characteristics USING sheetname
1[ L,Ta9s;f%~ Jp%IwD0begin_col begin_row.ITPUB个人空间$R P7q8w,n1b2s5z!w
PERFORM. modify_character .ITPUB个人空间 jA4h*z7{ xk#st
ENDIF.ITPUB个人空间c2W R0A1ko
IF class_c = 'X'.
6mq'^]Z0 sheetname = 'MM_CLASS' .ITPUB个人空间,o;[*f2J~3l r ~
PERFORM. whether_have_sheet USING sheetname.ITPUB个人空间f/kF-W-F9hs:q.I
PERFORM. upload_excel TABLES itab_class USING sheetname begin_col
nQ1WWA?*_tN0begin_row .ITPUB个人空间)B%k`k Qk$oy9^P1]"V
PERFORM. create_class .
5H9@8[e0JV7vD0 ENDIF.ITPUB个人空间 ]&E I }`0o+T M,j
IF class_m = 'X'.ITPUB个人空间#J*AH}PF7w*\0Iz
sheetname = 'MM_CLASS' .
f y7Ln'N!w'_([1_&H0 PERFORM. whether_have_sheet USING sheetname.ITPUB个人空间@%aE7h|
PERFORM. upload_excel TABLES itab_class USING sheetname begin_col
GG8e0G3U,ol,v0begin_row .ITPUB个人空间(Z{@Ey~Z
PERFORM. modify_class .
*h~9Zf{K&e8Bn e0 ENDIF.
H$o,K vNEF#t7zv0ITPUB个人空间 aW@.m[n!v2a
END-OF-SELECTION.
F.RN,aCj+w0*&--------------------------------------------------------------------*ITPUB个人空间-F@vM/wa6yA o
*& Form. whether_have_sheet
Q,J_5N'\Al'E"H0*&--------------------------------------------------------------------*
1zQ-i]4Gl0* text
{ L6~|T\7mR T0*---------------------------------------------------------------------*
8h%U_v)[!|0* -->SHEETNAME text