Sunday, August 22, 2010

Default Output Type di template modul XML Publisher

Default Output Type di template modul XML Publisher

Secara Default di EBS R12.0 tidak terdapat list value default output tipe (Excel, FO, HTML, PDF, RTF) untuk Template modul XML Publisher. Perhatikan gambar dibawah ini.

Create Template Before Patch
1

Tujuannya adalah agar dapat setting default output ketika kita submit request suatu concurrent program (ex : report).

Submit Request Before Patch
image002

Kalau secara default Output dari concurrent program (report) yang templatenya diregister melalui XML Publisher adalah bentuk PDF.

Perhatikan gambar dibawah ini

Options Submit Request Before Patch
image003

Solusi :

Apply Patch p5612820 dan p7017250 di Application tier applikasi Oracle, file patch bisa di di download dari http://metalink.oracle.com/.

Setelah kedua patch tersebut dijalankan, Create template di modul XML Publisher tampak seperti gambar dibawah ini

Create Template After Patch
image004
Options Submit request After Patch
image005

Perhatikan gambar diatas pada Form Options Submit Request Concurrent program, tampak terlihat format output dari template report adalah dalam bentuk Excel.

Thursday, August 19, 2010

Submit Request from Backend

Submit request pada oracle APPS salah satu caranya bisa dilakukan dengan cara menggunakan menu VIEW > Request, kali ini saya mencoba mencoba melakukan submit request dari backend dari suatu procedure (PL/SQL) yang saya apply di database, dengan parameter inputan yang saya passing dari record transaksi pada form

Perhatikan gambar form input Kwitansi dibawah ini, dari Form ini pengennya sih langsung generate report kwitansi melalui menu Tools WS Print Kwitansi

image001

Form Input Kwintansi

Setelah menu WS Print Kwintasi di tekan, Submit request untuk generate report Kwitansi otomatis jalan, perhatikan gambar dibawah

image002

Form Submit Request

Untuk detail report tidak saya jelaskan disini, untuk Mapping parameter reportnya perhatikan table di bawah

Program

WS Kwitansi Print

Short Name Program

WSARKWI

Application

Receivables

Parameter

1

p_branch_id

2

p_kwitansi_number

3

P_Org_id

4

P_Username

Skenario

  1. Membuat procedure untuk submit request, perhatikan procedure WS_PRINT_KWITANSI dibawah ini
PROCEDURE WS_PRINT_KWITANSI
p_branch_id INNUMBER,
p_kwitansi_number INNUMBER,
p_org_id INNUMBER,
p_username INVARCHAR2
IS
v_req_id NUMBER
BEGIN
/*
-- If you are directly running from the database using the TOAD, SQL-NAVIGATOR or --SQL*PLUS etc. Then you need to Initialize the Apps. In this case use the above API to --Initialize the APPS. If you are using same code in some procedure and running directly
--from application then you don’t need to initalize.
--Then you can comment the above API.
*/
v_req_id :=fnd_request.Submit_request’AR’,’WSARKWI’,’WS Kwitansi Print’,
SYSDATE,false,p_branch_id,p_kwitansi_number,p_org_id,p_username
/*
fnd_request.Submit_request(application,program,description,start_time,sub_request,argument1..100)
-- Arguments
-- application - Short name of application under which the program is registered
-- program - concurrent program name for which the request has to be submitted
-- description - Optional. Will be displayed along with user concurrent program name
-- start_time - Optional. Time at which the request has to startb running
-- sub_request - Optional. Set to TRUE if the request is submitted from another running request and has to be treated
-- - as a sub request. Default is FALSE
-- argument1..100 - Optional. Arguments for the concurrent request
*/
COMMIT;
IF v_req_id = 0
THEN
fnd_file.put_line fnd_file.LOG,’Request submission For this store FAILED’
--DBMS_OUTPUT.PUT_LINE( ’Request submission For this store FAILED’ );
ELSE
fnd_file.put_line fnd_file.LOG,’Request submission for this store SUCCESSFUL’
--DBMS_OUTPUT.PUT_LINE( ’Request submission For this store SUCCESSFUL’ );
ENDIF;
--Note:- If you are running directly from database, use DBMS API to display. If you are
-- Running directly from Application, then Use the fnd_file API to write the message
-- in the log file.
END WS_PRINT_KWITANSI
2. Personalisasi Form Print Kwitansi untuk mengeksekusi procedure WS_PRINT_KWITANSI diatas

Seq

10

Description

Menu WS Print Kwitansi

Condition

Trigger Event

WHEN-NEW-FORM-INSTANCE

Trigger Object

Condition

Actions

Seq

10

Type

Menu

Description

Language

All

Menu Entry

MENU1

Menu Label

WS Print Kwitansi

Seq

20

Description

Trigger Submit Request From Backend

Condition

Trigger Event

MENU1

Trigger Object

Condition

Actions

Seq

10

Type

Builtin

Description

Language

All

Builtin Type

Execute a Procedure

Argument

=’DECLARE

BEGIN

WS_PRINT_KWITANSI(’’’||:KWITANSI.BRANCH_ID

||’’’,’’’||

:KWITANSI.KWITANSI_NUMBER||’’’,

fnd_global.ORG_ID,

fnd_global.USER_NAME);

END’

Wednesday, August 18, 2010

FNDLOAD pada personalize form Oracle APPS

Kali ini saya coba mendokumentasikan penggunaan FNDLOAD dalam Personalize Form, beberapa hari yang lalu saya memindahkan personalisasi-personalisasi yang telah saya setup di salah satu environment oracle applikasi ke environment yang lain.

Perhatikan personalisasi pada Invoice modul Account Payables [Mesin 1]

image001

Form Personalisasi Oracle APPS 1

aktifkan enviroment oracle applikasi, pada mesin / server oracle anda [Mesin 1]

[oracleuser1@mesin1 ~]$ . $APPL_TOP/APPSVIS_ mesin1.env

Jalankan FNDLOAD Download pada mesin 1 untuk mendoanload personalisasi,

Level Form :

FNDLOAD <userid>/<password> 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct <filename.ldt> FND_FORM_CUSTOM_RULES

form_name=<form name>

Level Function :

FNDLOAD <userid>/<password> 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct <filename.ldt> FND_FORM_CUSTOM_RULES function_name=<function name>

Kali ini saya akan mendownload personalisasi pada level form, dalam contoh saya mendownload personalisai dari Form APXINWKB

[oracleuser1@ mesin1 ~]FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct APXINWKB_pers.ldt FND_FORM_CUSTOM_RULES form_name=APXINWKB

Log filename : L4500022.log [Enter]

Report filename : O4500022.out

[oracleuser1@ mesin1 ~]

Selanjutnya cek di $APPL_TOP, pastikan file APXINWKB_pers.ldt sudah tergenerate.

[oracleuser1@ mesin1 ~]$ ll APXINWKB_pers.ldt

-rw-r--r-- 1 oracleuser1 dba 119122 Jun 16 02:14 APXINWKB_pers.ldt

[oracleuser1@hostname ~]$

Selanjutnya copy file .ldt anda, karena personalisasi akan di upload di instance yang berbeda dimana berbeda mesin juga yaitu mesin 2, maka file .ldt tersebut kita copy ke $APPL_TOP di mesin 2

Sebagai contoh saya menggunakan scp mesin 2 (local machine) dari mesin 1 (remote machine)

[oracleuser2@ mesin2 appl]$ scp oracleuser2@ mesin1:$APPL_TOP/APXINWKB_pers.ldt APXINWKB_pers.ldt

[oracleuser2@ mesin2 appl]$ ll APXINWKB_pers.ldt

-rw-r--r-- 1 mesin2 dba 119122 Jun 16 03:47 APXINWKB_pers.ldt

Selanjutnya di mesin 2 agar FNDLOAD di kenalin maka aktifkan environment oracle applikasi mesin 2

[oracleuser1@ mesin2 appl] . . APPSVIS_mesind.env

image002

Personalize Form Oracle APPS 2 Before FNDLOAD Upload

Selanjutnya, jalan kan FNDLOAD Upload untuk

[oracleuser1@mesin2 appl]$ FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct APXINWKB_pers.ldt

Log filename : L4499468.log

Report filename : O4499468.out

Setelah itu cek kembali Form Invoice di instance yg baru (mesin 2)

image003

Personalize Form Oracle APPS 2 After FNDLOAD Upload

Tuesday, July 6, 2010

Menambah Processes dan Sessions di initSID.ora pada Oracle APPS

Barusan saya mengalami Database oracle Applikasi (EBS R 12) berjalan tidak normal, database down setelah beberapa saat database up, dan ini terjadi berulang.
Trouble shoot yang saya lakukan yaitu mengecek Processes dan Sessions di file system initSID.ora, yang terletak di :
$ORACLE_HOME/dbs/initSID.ora
pada server saya contohnya :
/u0/oracle/TEST/db/tech_st/10.2.0/dbs/initTEST.ora

Step yang saya lakukan :
1. Edit initTEST.ora
root@hostname # vi $ORACLE_HOME/dbs/initSID.ora

2. Edit processes dan sessions,
Existing :

processes = 200 # Max. no. of users x 2
sessions = 400 # 2 X processes
db_files = 512 # Max. no. of database files
dml_locks = 10000
cursor_sharing = EXACT # Required 11i settting
open_cursors = 600 # Consumes process memory, unless using MTS.
session_cached_cursors = 500

Saat ini :

processes = 500 # Max. no. of users x 2
sessions = 1000 # 2 X processes
db_files = 512 # Max. no. of database files
dml_locks = 10000
cursor_sharing = EXACT # Required 11i settting
open_cursors = 600 # Consumes process memory, unless using MTS.
session_cached_cursors = 500

nahh setelah saya melakukan troubleshoot diatas, applikasi oracle saya berjalan normal kembali.

Monday, April 26, 2010

Get Value from $PROFILES$

Get Value from $PROFILES$

Hari saya melakukan personalize untuk salah satu Form di modul Inventory tepatnya di Form Inter-Organization Transfer (Inventory-Transaction- Inter-Organization Transfer), saya akan melakukan personalize untuk generate otomatis Shipment Number, saya mendapat error ketika setup untuk value Item Shipment number nya yg tergenerate melalui Function saya tempel kan di salah satu package (Custom Package project yg saya kerjakan) yang saya buat di database, sebut saja WS_PKG.WS_GET_INTER_ORG_SEQ dimana function tersebut membutuhkan parameter Input mfg_organization_id

image001

Property Value : =WS_PKG.WS_GET_INTER_ORG_SEQ(:$PROFILES$.MFG_ORGANIZATION_ID)

Padahal saya sudah sudah ganti organization, untuk lebih pastinya lagi saya cek di Help - Diagnostic -Examine pada Block $PROFILES$ , item MFG_ORGANIZATION_ID value nya ada , tapi kok aneh pada saat saya personalize Form Inter-Organization Transfer dimana Function untuk mengenerate Shipment number melalui function yg saya buat WS_GET_INTER_ORG_SEQ dengan paratemter Input :$PROFILES$.MFG_ORGANIZATION_ID, seolah :$PROFILES$.MFG_ORGANIZATION_ID tidak melempar sebuah nilai.

Nah salah satu cara saya akalin dengan menggunakan Package FND_PROFILE function VALUE => fnd_profile.value(Name In Varchar2), tampak pada gambar di bawah

image002

Property Value : =WS_PKG.WS_GET_INTER_ORG_SEQ(fnd_profile.VALUE(’MFG_ORGANIZATION_ID’))

Nah..baru keluar, ini lah yang sampai sekarang saya belum ketemu jawabannya kenapa ketika saya mau ambil nilai :$PROFILES$.MFG_ORGANIZATION_ID untuk personalize form, saya tidak bisa mendapatkan valuenya.. L.