2008年5月23日 星期五

Forum Thread

Forum Thread

Hi
BAPI-step by step
http://www.sapgenie.com/abap/bapi/example.htm

list of all bapis

http://www.planetsap.com/LIST_ALL_BAPIs.htm

for BAPI's
http://www.sappoint.com/abap/bapiintro.pdf
http://www.sappoint.com/abap/bapiprg.pdf
http://www.sappoint.com/abap/bapiactx.pdf
http://www.sappoint.com/abap/bapilst.pdf
http://www.sappoint.com/abap/bapiexer.pdf
http://service.sap.com/ale
http://service.sap.com/bapi

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf

http://www.planetsap.com/Bapi_main_page.htm
http://www.topxml.com/sap/sap_idoc_xml.asp
http://www.sapdevelopment.co.uk/
http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf

Also refer to the following links..

www.sappoint.com/abap/bapiintro.pdf
www.sap-img.com/bapi.htm
www.sap-img.com/abap/bapi-conventions.htm
www.planetsap.com/Bapi_main_page.htm
www.sapgenie.com/abap/bapi/index.htm

Checkout !!
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://techrepublic.com.com/5100-6329-1051160.html#
http://www.sap-img.com/bapi.htm
http://www.sap-img.com/abap/bapi-conventions.htm
http://www.sappoint.com/abap/bapiintro.pdf

u can check the below the material also

what is BAPI?

BAPI stands for Business API(Application Program Interface).
I have answered this question before..
A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
You can make your function module remotely enabled in attributes of Function module but
A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).

BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.

The following standardized BAPIs are provided:
Reading instances of SAP business objects
GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.

The BAPI GetList() is a class method.
GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type

The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.

Create( ) and CreateFromData! ( )
The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.

Change( )
The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.

Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.

The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.

Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.

Add ( ) and Remove ( ) The BAPI Add adds a subobject to an existing object inst! ance and the BAPI and Remove removes a subobject from an object instance. These BAPIs are instance methods.

Example Code

U need to give the step_nr, item_nr, cond_count and cond_type so the correct conditon will be updated. If no condition exists for the given parameters, a new condition will be created.
U can find these parameters for a particular condition type in table KONV.

&---------------------------------------------------------------------
*& Form saveTransactionJOCR
&---------------------------------------------------------------------

* text

----------------------------------------------------------------------

* --> p1 text
* <-- p2 text

----------------------------------------------------------------------
FORM saveTransactionJOCR .
data: salesdocument like BAPIVBELN-VBELN,
order_header_inx like bapisdh1x,
order_header_in like bapisdh1,
return type standard table of bapiret2 with header line,
conditions_in type standard table of bapicond with header line,
conditions_inx type standard table of bapicondx with header line,
logic_switch like BAPISDLS,
step_nr like conditions_in-cond_st_no,
item_nr like conditions_in-itm_number,
cond_count like conditions_in-cond_count,
cond_type like conditions_in-cond_type.

salesdocument = wa_order_information-VBELN.

LOGIC_SWITCH-COND_HANDL = 'X'.

order_header_inx-updateflag = 'U'.

* conditions

clear conditions_in[].
clear conditions_inx[].

clear: step_nr,
item_nr,
cond_count,
cond_type.
step_nr = '710'.
item_nr = '000000'.
cond_count = '01'.
cond_type = 'ZCP2'.

CONDITIONS_IN-ITM_NUMBER = item_nr.
conditions_in-cond_st_no = step_nr.
CONDITIONS_IN-COND_COUNT = cond_count.
CONDITIONS_IN-COND_TYPE = cond_type.
CONDITIONS_IN-COND_VALUE = 666.
CONDITIONS_IN-CURRENCY = 'EUR'.

append conditions_in.

CONDITIONS_INX-ITM_NUMBER = item_nr.
conditions_inx-cond_st_no = step_nr.
CONDITIONS_INX-COND_COUNT = cond_count.
CONDITIONS_INX-COND_TYPE = cond_type.
CONDITIONS_INX-UPDATEFLAG = 'U'.
CONDITIONS_INX-COND_VALUE = 'X'.
CONDITIONS_INX-CURRENCY = 'X'.

append conditions_inx.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = salesdocument
ORDER_HEADER_IN = order_header_in
ORDER_HEADER_INX = order_header_inx
LOGIC_SWITCH = logic_switch
TABLES
RETURN = return
CONDITIONS_IN = conditions_in
CONDITIONS_INX = conditions_inx
.

if return-type ne 'E'.
commit work and wait.
endif.

ENDFORM. " saveTransactionJOCR

Bdc to Bapi

The steps to be followed are :
1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).
for VA01 use BAPI_SALESORDER_CREATEFROMDAT2
2. Create a Z program and call the BAPi (same as a Funtion module call).
2. Now, if you see this BAPi, it has
-> Importing structures.
eg: SALESDOCUMENT: this will take the Sales order header data as input.
-> Tables parameters:
eg: ORDER_ITEM_IN: this will take the line item data as input.

Note :
Only specify fields that should be changed
Select these fields by entering an X in the checkboxes
Enter a U in the UPDATEFLAG field
Always specify key fields when changing the data, including in the checkboxes
The configuration is an exception here. If this needs to be changed, you need to complete it again fully.
Maintain quantities and dates in the schedule line data
Possible UPDATEFLAGS:
U = change
D = delete
I = add
Example
1. Delete the whole order
2. Delete order items
3. Change the order
4. Change the configuration

Notes
1. Minimum entry:
You must enter the order number in the SALESDOCUMENT structure.
You must always enter key fields for changes.
You must always specify the update indicator in the ORDER_HEADER_INX.

2. Commit control:
The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.

For further details... refer to the Function Module documentation for the BAPi.

Bapi to VB(Visual Basic)

Long back I had used the following flow structure to acheive the same.
Report -> SM59 RFC destination -> COM4ABAP -> VB.exe

my report uses the rfc destination to create a COM session with com4abap. com4abap calls the vb.exe and manages the flow of data between sap and vb exe.

You need to have com4abap.exe
If com4abap is installed you will find it in sapgui installatin directory , C:\Program Files\SAPpc\sapgui\RFCSDK\com4abap.
else refer OSS note 419822 for installation of com4abap

after making the settings in com4abap to point to the vb program and setting up rfc destination in sm59 to point to com4abap session , you can use the following function modules to call the vb code.
for setting up com4abap and rfc destination please refer to the documentation for com4abap.

* Invoke NEW DCOM session

call function 'BEGIN_COM_SESSION'
exporting
service_dest = service_dest "(this will be a RFC destination created in SM59)
importing
worker_dest = worker_dest
exceptions
connect_to_dcom_service_failed = 1
connect_to_dcom_worker_failed = 2
others = 3.

call function 'create_com_instance' destination worker_dest
exporting
clsid = g_c_clsid
typelib = g_c_typelib
importing
instid = g_f_oid
exceptions
communication_failure = 1 message g_f_msg
system_failure = 2 message g_f_msg
invalid_instance_id = 3
others = 4.

call function 'com_invoke' destination worker_dest
exporting
%instid = g_f_oid
%method = 'UpdatePDF'
sntemp = g_v_const_filent
snsysid = sy-sysid
snflag = 'N'
tables
rssaptable = g_t_pdfdetail1
%return = g_t_pdfdetail1 "t_test
exceptions
communication_failure = 1 message g_f_msg
system_failure = 2 message g_f_msg
invalid_instance_id = 3
others = 4.

then close the com session , using
FM delete_com_instance
FM END_COM_SESSION

2008年5月7日 星期三

[INFO] Ajax toolkit list

Microsoft Ajax - http://ajax.asp.net
Java BluePrints - https://blueprints.dev.java.net/
Protptype - http://www.prototypejs.org/
Scriptaculus - http://script.aculo.us/
Laszlo - http://www.openlaszlo.org/
GWT - http://code.google.com/webtoolkit/
AJAX.net - http://www.ajaxpro.info/
Yahoo - http://developer.yahoo.com/yui/
Active Widgets - http://www.activewidgets.com/
Tibco General Interface - http://developer.tibco.com/
Visual Web GUI - http://www.visualwebgui.com/
Dojo - http://dojotoolkit.org/
Backbase - http://www.backbase.com/
SmartClient - http://www.smartclient.com/
Nitobi - http://www.nitobi.com/
JackBe - http://www.jackbe.com
Zimbra - http://www.zimbra.com/
Rico - http://www.openrico.org/
Spry - http://labs.adobe.com/technologies/spry/
Aflax - http://www.aflax.org/
DWR - http://getahead.org/dwr
Moo.fx - http://moofx.mad4milk.net/
Mochikit - http://www.mochikit.com/
Xajax - http://www.xajaxproject.org/
Nexaweb - http://www.nexaweb.com
Behaviour - http://www.bennolan.com/behaviour/
AJForm - http://projects.aphexcreations.net/ajform/
Qooxdoo - http://qooxdoo.org/
Bindows - http://www.bindows.net/
Tibet - http://www.technicalpursuit.com/ajax_indepth.htm
Crossvision - http://www.softwareag.com/Corporate/products/cv/appldes/default.asp
Echo2 - http://www.nextapp.com/platform/echo2/echo/
Ajax Tags - http://ajaxtags.sourceforge.net/ (JSP based)
WebWork - http://www.opensymphony.com/webwork/
Tacos - http://tacos.sourceforge.net/ (for Tapestry)
Sajax - http://www.modernmethod.com/sajax/
AjaxAC - http://ajax.zervaas.com.au/
JSPan - http://sourceforge.net/projects/jpspan
HTML_AJAX - http://pear.php.net/package/HTML_AJAX/ (PHP)
Aspects - http://ajaxaspects.blogspot.com/
WebORB - http://www.themidnightcoders.com/weborb/
TurboGears - http://www.turbogears.org/
MagicAjax - http://www.magicajax.net/

2008年5月5日 星期一

Column 2 by Sandy Kemsley : TUCON: Process Plans using iProcess Conductor

Column 2 by Sandy Kemsley : TUCON: Process Plans using iProcess Conductor: "cross-selling bundling processes seen in telecommunications and financial services, or claims management that may include both property damage and bodily injury exposures. In many cases, there are too many alternatives to realistically model all process possibilities explicitly, or the process is dynamic and specific instances may change during execution. The key is to identify reusable parts of the process and publish them as"

2008年5月4日 星期日

旅遊拍攝重點─分鏡列表

抓住旅遊重點的片段攝影

旅遊的型態有許多種,在拍攝時要以片段與組合方式,將旅遊過程中美好及值得回憶的畫面,有系統的拍攝入鏡,不要做毫無意義的長時間攝影,把一些不必要的畫面照單全收,這種情況是大部份 DV 族常犯的毛病,不僅浪費空白帶當回到家欣賞時更是冗長乏味不知主題為何。畫面要簡潔有力讓人一看印象深刻,而不是拍得多就是好。每個畫面的主題明確,就算不太會取景或取景角度較差都無妨,有節奏的變換畫面大小 (全景、中景、近景、特寫) 及變化不同的拍攝角度 (仰角、俯角、側邊),運用的組合鏡頭的概念,會讓人感覺內容豐富精彩。









汽車上拍攝的技巧

具有手動調整光圈、焦距及快門速度功能是有助於車上行進之中的拍攝,其實大部份的 DV 都具有以上三種手動功能,只是一般使用者大都忽略或不會使用。從車上行進中往車外拍攝景物時,最簡單的設定就是將自動攝影模式(Program AE)設在運動模式,還有將焦距設定在無限遠(infinity),如此窗外的景物拍攝起來就不會模糊了。


拍攝車窗外的景物偶爾也能補捉到美景,不過由於車子在晃動,拍攝會比較具挑戰性

如果是自己開車全家出遊,想要拍攝窗外風景時,就要請太太幫忙拍攝,在狹窄的汽車車廂中,用廣角鏡頭是最理想不過的,首先拍攝者以坐到助手席最理想,透過車前擋風玻璃向外以固定畫面全景拍攝,也可從車門窗向外,天氣好的話將玻璃搖下,效果會更好。除了單純的窗外畫面,也可拍攝車內的兒女或好友,這些車內畫面必需以廣角畫面固定拍攝,不要做 ZOOM IN/OUT 的動作,才能確保畫面的穩定。

旅遊拍攝重點─分鏡列表

拍攝項目 拍攝內容 拍攝方式
出發集合地點 ● 是誰參加這次旅遊?
● 搭乘什麼交通工具
● 要去什麼地方? ● 用全景拍攝集合地點
● 用半身景分兩人或三人一個片段拍攝參加者
● 拍攝地圖或旅遊地點指示、旅遊團名..等
● 拍攝出發的情景
交通途中 ● 窗外流動的景觀
● 訪問幾位核心成員的心情 ● 用全景拍攝車窗外別有風味的風景
● 用全景及中景拍攝車內同伴
● 靠近被訪者用胸上景來拍攝
抵達目的地 ● 步出交通設施
● 抵達後的愉快氣氛
● 住宿或休息地點的景觀 ● 走在前面用全景拍攝全體魚貫走來,讓每個人一一入鏡
● 用全景或搖攝將飯店外觀拍攝,加上幾個中景拍攝飯店的特色
觀光旅遊的開始 ● 主題建築或景物、地標、具代表性之圖騰或標誌、導覽圖...等
● 旅遊點的當地的風土民情、服裝、裝飾、水果、花卉..等
● 家人或親戚朋友之觀光情景 ● 用分鏡拍攝手法將景點特色一一入鏡
● 靜態主題拍攝時間不宜過長
● 不要光顧著拍風景記得要多拍家人或同伴
享用美食 ● 餐廳外觀及佈置
● 美食的內容
● 訪問享用後的心得分享 ● 用全景或搖攝將餐廳外觀拍攝
● 用特寫拍攝食譜及食物內容
● 用胸上景拍攝幾位享用美食的情景
● 用半身景帶到桌上的殘肴及被訪者
購買特產 ● 特產店的外觀
● 形形色色的特產
● 採購後的滿足感 ● 用全景或搖攝將特產店外觀拍攝
● 以全、中、近景拍攝特產的內容
● 用分鏡拍攝手法將幾位採購的過程拍攝下來
● 用半身景拍攝提著大包小包的家人或朋友
快樂的回程 ● 交通工具上大家疲憊的樣子
● 旅遊心得分享
● Happy Ending ● 用半身景拍攝車上有人打瞌睡的畫面
● 用胸上景訪問幾位談談本次旅遊後的心得
● 下車時先到車下拍攝大家魚貫下車,請大家向鏡頭揮手道別

【旗標電腦知識報】