Thursday, March 5, 2009

XXL_FULL_API

************************************************************************
DATA : HEADER1 LIKE GXXLT_P,
HEADER2 LIKE GXXLT_P.

*DEFINE 5 INTERNAL TABLES FOR HOLDING DATA FROM PRDEFINED STRUCTURES.

* THIS STRUCTURE ‘GXXLT_O’ IS FOR ‘ONLINE DISPLAY’
DATA : BEGIN OF ONLINE OCCURS 1 .
INCLUDE STRUCTURE GXXLT_O.
DATA : END OF ONLINE.

* THIS STRUCTURE ‘GXXLT_P’ IS FOR ‘PRINTING PURPOSE‘
DATA : BEGIN OF PRINT OCCURS 1 .
INCLUDE STRUCTURE GXXLT_P.
DATA : END OF PRINT.

* THIS STRUCTURE ‘GXXLT_H’ IS FOR ‘HORIZONTAL PURPOSE’
DATA : BEGIN OF HORZ OCCURS 1 .
INCLUDE STRUCTURE GXXLT_H.
DATA : END OF HORZ.

* THIS STRUCTURE ‘GXXLT_V’ IS FOR ‘VERTICAL PURPOSE’
DATA : BEGIN OF VERTICAL OCCURS 1 .
INCLUDE STRUCTURE GXXLT_V.
DATA : END OF VERTICAL.

* THIS STRUCTURE ‘GXXLT_S’ IS FOR CHANGING FUNCTIONALITY
* I.E SUMMATION OR SUBCTRACTION’
DATA : BEGIN OF SEMAS OCCURS 1 .
INCLUDE STRUCTURE GXXLT_S.
DATA : END OF SEMAS.
************************************************************************



************************************************************************
* Header text for the data columns................

VERTICAL-COL_NO = 1.
VERTICAL-COL_NAME = '檢驗批號'.
APPEND VERTICAL.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 1.
HORZ-COL_NAME = '批次'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 2.
HORZ-COL_NAME = '物料號碼'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 3.
HORZ-COL_NAME = '檢驗物件短文'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 4.
HORZ-COL_NAME = '節點號碼'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 5.
HORZ-COL_NAME = '特性'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 6.
HORZ-COL_NAME = '主要檢驗特性'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 7.
HORZ-COL_NAME = '檢驗特性的短文'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 8.
HORZ-COL_NAME = '短文'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 9.
HORZ-COL_NAME = '測量值的最小值'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 10.
HORZ-COL_NAME = '測量值的最高值'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 11.
HORZ-COL_NAME = '測量值的平均值'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 12.
HORZ-COL_NAME = '目標值(規格)'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 13.
HORZ-COL_NAME = '最大值(規格)'.
APPEND HORZ.

HORZ-ROW_NO = 1.
HORZ-COL_NO = 14.
HORZ-COL_NAME = '最大值(規格)'.
APPEND HORZ.

************************************************************************
SEMAS-COL_NO = 1.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.

SEMAS-COL_NO = 2.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.

SEMAS-COL_NO = 3.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.

SEMAS-COL_NO = 4.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.

SEMAS-COL_NO = 5.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.

SEMAS-COL_NO = 6.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.

SEMAS-COL_NO = 7.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.

SEMAS-COL_NO = 8.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.

SEMAS-COL_NO = 9.
SEMAS-COL_TYP = 'STR'.
SEMAS-COL_OPS = 'DFT'.
APPEND SEMAS.

SEMAS-COL_NO = 10.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.

SEMAS-COL_NO = 11.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.

SEMAS-COL_NO = 12.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.

SEMAS-COL_NO = 13.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.

SEMAS-COL_NO = 14.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.

SEMAS-COL_NO = 15.
SEMAS-COL_TYP = 'NUM'.
SEMAS-COL_OPS = 'ADD'.
APPEND SEMAS.

************************************************************************

CALL FUNCTION 'XXL_FULL_API'
EXPORTING
DATA_ENDING_AT = SY-DBCNT
DATA_STARTING_AT = 1
FILENAME = 'XXLT0001'
HEADER_1 = 'HEADER1'
HEADER_2 = 'HEADER2'
NO_DIALOG = SPACE
* NO_START = ' '
N_ATT_COLS = 14
N_HRZ_KEYS = 1
N_VRT_KEYS = 1
SEMA_TYPE = 'X'
* SO_TITLE = ' '
TABLES
DATA = ITAB
HKEY = HORZ
ONLINE_TEXT = ONLINE
PRINT_TEXT = PRINT
SEMA = SEMAS
VKEY = VERTICAL
EXCEPTIONS
CANCELLED_BY_USER = 1
DATA_TOO_BIG = 2
DIM_MISMATCH_DATA = 3
DIM_MISMATCH_SEMA = 4
DIM_MISMATCH_VKEY = 5
ERROR_IN_HKEY = 6
ERROR_IN_SEMA = 7
FILE_OPEN_ERROR = 8
FILE_WRITE_ERROR = 9
INV_DATA_RANGE = 10
INV_WINSYS = 11
INV_XXL = 12
OTHERS = 13.
************************************************************************

Wednesday, March 4, 2009

Configuring Batch Management


Logistics general - Batch Management

1.1. Specify Batch Level
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Specify batch level and activate batch status management Transaction OMCT

1.2. Batch Number - Activate Internal Number Assignment
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Number Assignment --> Activate internal batch number assignment Transaction OMCZ

1.3. Batch Creation - for Goods Movements
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Creation of new batches --> Define batch creation for goods movements Transaction

1.4. Characteristic Value Assignment -- Update Standard Characteristics
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Characteristic Value Assignment --> Update Standard Characteristics Transaction

1.5. Activate Batch Classification for Goods Movements in Inventory Management
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Characteristic Value Assignment --> Valuation for goods movements --> Activate Batch Classification for goods movements in Inventory Management Transaction OMCV

1.6. Batch Determination – Condition Table(Cross Client)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Condition Tables --> Define production order condition tables Transaction OPLB

1.7. Batch Determination – Condition Table(Cross Client)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Condition Tables --> Define SD condition Tables Transaction V/C7

1.8. Batch Determination – Access Sequence(Cross Client)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Access Sequences --> Define Production Order Access Sequences Transaction OPLF

1.9. Batch Determination – Access Sequence(Cross Client)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Access Sequences --> Define SD Access Sequences Transaction V/C2

1.10. Batch Determination – Strategy Types
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define Production Order Strategy Types Transaction OPLE

1.11. Batch Determination – Strategy Types
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define SD Strategy Types Transaction V/C1

1.12. Batch Determination – Batch Search Procedure
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define IM Search Procedure Transaction OMCY

1.13. Batch Determination – Batch Search Procedure
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define Production order Search Procedure Transaction OPLG

1.14. Batch Determination – Batch Search Procedure
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define SD Search Procedure Transaction V/C3

1.15. Batch Determination – Batch Search Procedure Allocation
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Allocate IM search procedure/activate check Transaction OMCG

1.16. Batch Determination – Batch Search Procedure Allocation
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Assign Search procedure to production order Transaction OPL8

1.17. Batch Determination – Batch Search Procedure Allocation(SD)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Allocate SD Search procedure Transaction V/C5

1.18. Batch Determination – Activate Automatic Batch Determination(SD)
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Activate Automatic Batch Determination in SD -->For delivery item categories Transaction V/CL

1.19. Batch Determination – Batch Selection Class
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define Selection Classes Transaction CL01

1.20. Batch Determination – Sort Rule
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Batch Determination & Batch Check --> Define Sort Rules Transaction CU70

1.21. Batch Determination – Make Settings for Batch Where-used list
Menu Path Enterprise Structure--> Logistics General--> Batch Management --> Make Settings for Batch Where-used list Transaction OMBB

分手的原因


在他大三的時候交了一個學妹,兩個人一個帥一個美,
簡直是學校裡最強的一道閃光,經過了約半年的交往後,
男同學想說也該去見見女方的父母了,就在一次巧妙的安排下,
到了女方的家裡去作客,女方是鄉下人,對待客人非常熱情,
當晚他媽展現他的拿手廚藝,煮了非常豐盛一桌出來,一方面是歡迎客人,
一方面是讓出門在外念書的女兒補補身體,滿滿的一桌親友,好不熱鬧,
整個飯局在酒精加上我同學豐富的幽默感下,可說是非常成功,
大概吃到快尾聲的時候,媽媽突然又端出一道菜來,
說這是她畢生的拿手絕活,麻油炒雙腰

暫停...

名詞解釋:雙腰就是腰子加雞腰,白話就是豬的腎臟+雞的睪丸

繼續....

我同學當然要給這未來岳母捧個場,
在嚐過這道菜後我同學開始大讚未來岳母的好手藝,
並且順勢體貼的夾了一顆雞睪丸給他女朋友,
女朋友馬上回絕,說他不敢吃這種東西,
我同學加他母親及眾親友不斷努力勸說,
解釋這營養價值有多高,
但他女友依然不為所動,不願意入口,最後在大家都放棄的情況下,
我同學說了一句話...成了他們分手的原因

奇怪~
生的你就敢吃,熟的反而不敢

這趟旅程結束後,這段感情也跟著結束了!!

ABAP STRING

REPORT ZDEMO_DATA_STRING.

* shifting strings by a given number of places

DATA: t1(10) TYPE c VALUE 'abcdefghij',
string1 LIKE t1.

string1 = t1.
WRITE string1.
SHIFT string1.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES LEFT.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES RIGHT.
WRITE / string1.
string1 = t1.
SHIFT string1 BY 3 PLACES CIRCULAR.
WRITE / string1.

abcdefghij
bcdefghij
defghij
abcdefg
defghijabc


SKIP.
ULINE.

* shifting up to a given string

DATA: t2(10) TYPE c VALUE 'abcdefghij',
string2 LIKE t2,
str2(2) TYPE c VALUE 'ef'.

string2 = t2.
WRITE string2.
SHIFT string2 UP TO str2.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 LEFT.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 RIGHT.
WRITE / string2.
string2 = t2.
SHIFT string2 UP TO str2 CIRCULAR.
WRITE / string2.

abcdefghij
efghij
efghij
abcdef
efghijabcd


SKIP.
ULINE.

* shifting a string depending on the first or last sign

DATA: t3(14) TYPE c VALUE ' abcdefghij',
string3 LIKE t3,
str3(6) TYPE c VALUE 'ghijkl'.

string3 = t3.
WRITE string3.
SHIFT string3 LEFT DELETING LEADING space.
WRITE / string3.
string3 = t3.
SHIFT string3 RIGHT DELETING TRAILING str3.
WRITE / string3.

abcdefghij
abcdefghij
abcdef

SKIP.
ULINE.

* replacing values

DATA: t4(10) TYPE c VALUE 'abcdefghij',
string4 LIKE t4,
str41(4) TYPE c VALUE 'cdef',
str42(4) TYPE c VALUE 'klmn',
str43(2) TYPE c VALUE 'kl',
str44(6) TYPE c VALUE 'klmnop',
len4 TYPE i VALUE 2.

string4 = t4.
WRITE string4.
REPLACE str41 WITH str42 INTO string4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str42 INTO string4 LENGTH len4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str43 INTO string4.
WRITE / string4.
string4 = t4.
REPLACE str41 WITH str44 INTO string4.
WRITE / string4.

abcdefghij
abklmnghij
abklmnefgh
abklghij
abklmnopgh


SKIP.
ULINE.

* translating signs

DATA: t5(10) TYPE c VALUE 'AbCdEfGhIj',
string5 LIKE t5,
rule5(20) TYPE c VALUE 'AxbXCydYEzfZ'.

string5 = t5.
WRITE string5.
TRANSLATE string5 TO UPPER CASE. "#EC SYNTCHAR
WRITE / string5.
string5 = t5.
TRANSLATE string5 TO LOWER CASE. "#EC SYNTCHAR
WRITE / string5.
string5 = t5.
TRANSLATE string5 USING rule5. "#EC SYNTCHAR
WRITE / string5.

AbCdEfGhIj
ABCDEFGHIJ
abcdefghij
xXyYzZGhIj



SKIP.
ULINE.

* overlaying strings

DATA: t6(10) TYPE c VALUE 'a c e g i ',
string6 LIKE t6,
over6(10) TYPE c VALUE 'ABCDEFGHIJ',
str6(2) TYPE c VALUE 'ai'.

string6 = t6.
WRITE string6.
WRITE / over6.
OVERLAY string6 WITH over6.
WRITE / string6.
string6 = t6.
OVERLAY string6 WITH over6 ONLY str6.
WRITE / string6.

a c e g i
ABCDEFGHIJ
aBcDeFgHiJ
A c e g I


SKIP.
ULINE.

*searching strings

DATA string7(30) TYPE c VALUE 'This is a little sentence.'.
WRITE: / 'Searched', 'SY-SUBRC', 'SY-FDPOS'.

ULINE /1(26).
SEARCH string7 FOR 'X'.
WRITE: / 'X', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR 'itt '.
WRITE: / 'itt ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR '.e .'.
WRITE: / '.e .', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR '*e'.
WRITE: / '*e ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.
SEARCH string7 FOR 's*'.
WRITE: / 's* ', sy-subrc UNDER 'SY-SUBRC',
sy-fdpos UNDER 'SY-FDPOS'.

Searched SY-SUBRC SY-FDPOS

X 4 0
itt 0 11
.e . 0 15
*e 0 10
s* 0 17


SKIP.
ULINE.

*

DATA: string8(30) TYPE c VALUE 'This is a fast first example.',
pos8 TYPE i,
off8 TYPE i.

WRITE / string8.
SEARCH string8 FOR 'ft' ABBREVIATED.
WRITE: / 'SY-FDPOS:', sy-fdpos.
pos8 = sy-fdpos + 2.
SEARCH string8 FOR 'ft' ABBREVIATED STARTING AT pos8 AND MARK.
WRITE / string8.
WRITE: / 'SY-FDPOS:', sy-fdpos.
off8 = pos8 + sy-fdpos - 1.
WRITE: / 'Off:', off8.

This is a fast first example.
SY-FDPOS: 10
This is a fast FIRST example.
SY-FDPOS: 4
Off: 15


SKIP.
ULINE.

* length of a string

DATA: int TYPE i,
word1(20) TYPE c VALUE '12345',
word2(20) TYPE c ,
word3(20) TYPE c VALUE ' 4 '.
int = strlen( word1 ). WRITE int.
int = strlen( word2 ). WRITE / int.
int = strlen( word3 ). WRITE / int.

5
0
4


SKIP.
ULINE.

* condensing strings

DATA: string9(25) TYPE c VALUE ' one two three four',
len9 TYPE i.

len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
CONDENSE string9.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.
CONDENSE string9 NO-GAPS.
len9 = strlen( string9 ).
WRITE: string9, '!'.
WRITE: / 'Length: ', len9.

one two three four !
Length: 25 one two three four !
Length: 18 onetwothreefour !
Length: 15

SKIP.
ULINE.

* concatenating strings

DATA: c1(10) TYPE c VALUE 'Sum',
c2(3) TYPE c VALUE 'mer',
c3(5) TYPE c VALUE 'holi ',
c4(10) TYPE c VALUE 'day',
c5(30) TYPE c ,
sep(3) TYPE c VALUE ' - '.

CONCATENATE c1 c2 c3 c4 INTO c5.
WRITE c5.
CONCATENATE c1 c2 c3 c4 INTO c5 SEPARATED BY sep.
WRITE / c5.

Summerholiday
Sum - mer - holi - day


SKIP.
ULINE.

* splitting strings

DATA: string10(60) TYPE c ,
p1(20) TYPE c VALUE '++++++++++++++++++++',
p2(20) TYPE c VALUE '++++++++++++++++++++',
p3(20) TYPE c VALUE '++++++++++++++++++++',
p4(20) TYPE c VALUE '++++++++++++++++++++',
del10(3) TYPE c VALUE '***'.
string10 = ' Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5'.
WRITE string10.
SPLIT string10 AT del10 INTO p1 p2 p3 p4.
WRITE / p1.
WRITE / p2.
WRITE / p3.
WRITE / p4.

Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5
Part 1
Part 2
Part 3
Part 4 *** Part 5


SKIP.
ULINE.

* moving parts of strings

DATA: mc1(10) TYPE c VALUE 'ABCDEFGHIJ',
mc2(10) TYPE c .
MOVE mc1 TO mc2 PERCENTAGE 40.
WRITE mc2.
MOVE mc1 TO mc2 PERCENTAGE 40 RIGHT.
WRITE / mc2.

ABCD
ABCD


PP Functions

===================================================
BOM

CS03 CSAP_MAT_BOM_READ
-------------------------------------------
MATERIAL W32070

PLANT Y110
BOM_USAGE 1

CS15 CS_WHERE_USED_MAT
-------------------------------------------
DATUB 2999/01/01
DATUV 1901/01/01
MATNR W32070
WERKS Y110


STKO - BOM Header
STPO - BOM item
MAST - Material to BOM Link
MAPL - Assignment Task Lists to Materials

===================================================
PROCESS ORDER

COR3 CBIF_GLM1_PROCESS_ORDER_READ
--------------------------------------------
I_AUFNR 110112


AFKO - Production Order Header
AFPO - Production Order Position (Details)

===================================================
ROUTING

PLKO - Routing Group Header
PLSO - Routing Group Sequence
PLPO - Routing Group Operations

You can use below function module to get list of routing operation detailsInput fields (PLNTY - Task List Type 'N', PLNNR - Group, PLNAL - Group counter), these fileds take from table MAPL

C203 CARO_ROUTING_READ
---------------------------------------------
DATE_FROM 1900/01/01
DATE_TO 9999/12/31
PLNTY 2
PLNNR 0000156
PLNAL 1
MATNR W32070


===================================================
MD04 MD_STOCK_REQUIREMENTS_LIST_API
MD_MRP_LIST_API
MD_READ_MATERIAL
MD_READ_MATERIAL_SIMPLE

===================================================

BOM展開和反查函數
CSS4 BOM 展開
CS_BOM_EXPLOSION_MAT
BOM explosion (old version); as of 3.0, use CS_BOM_EXPL_MAT_V2 CS_BOM_EXPL_MAT_V2
BOM explosion for material

CSS5 BOMs: 反查清單
CS_WHERE_USED_MAT
Bills of material; where-used list
CS_WHERE_USED_MAT_ANY
Bills of material; where-used list as material or class item
CS_WHERE_USED_MAT_VIA_CLA
Bills of material; where-used list via classes

===================================================
三個方法:
1.CS15
2.FM:CS_WHERE_USED_MAT
3.根據表:STAS和STPO第三個方法弄不好效率會比較差


QM in the Logistics Supply Chain




Tuesday, March 3, 2009

Unconditional Surrender

"Unconditional Surrender" near Tuna Harbor in downtown San Diego.