Sayfalar

6 Kasım 2014 Perşembe

FNDLOAD ile tanım indirme/yükleme

1. Lookups 
-- ------------- 
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct XX_CUSTOM_LKP.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="XXCUST" LOOKUP_TYPE="XX_LOOKUP_TYPE"

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/aflvmlu.lct XX_CUSTOM_LKP.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

2. Concurrent Program 
-- ----------------------------- 
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CUSTOM_CP.ldt PROGRAM APPLICATION_SHORT_NAME="XXCUST" CONCURRENT_PROGRAM_NAME="XX_CONCURRENT_PROGRAM"

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CUSTOM_CP.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

3. Profile 
-- --------- 
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct XX_CUSTOM_PRF.ldt PROFILE PROFILE_NAME="XX_PROFILE_NAME" APPLICATION_SHORT_NAME="XXCUST"

$FND_TOP/bin/FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afscprof.lct XX_CUSTOM_PRF.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

4. Request Set and Link 
-- ------------------------------ 
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct XX_CUSTOM_RS.ldt REQ_SET REQUEST_SET_NAME='REQUEST_SET_NAME'

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afcprset.lct  XX_CUSTOM_RS.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

5. FND Message 
-- --------------------- 
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afmdmsg.lct XX_CUSTOM_MESG.ldt FND_NEW_MESSAGES APPLICATION_SHORT_NAME="XXCUST" MESSAGE_NAME="MESSAGE_NAME%"

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afmdmsg.lct XX_CUSTOM_MESG.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

6. D2K FORMS 
-- ------------------ 
$FND_TOP/bin/FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FRM.ldt FORM FORM_NAME="FORM_NAME" 
       
$FND_TOP/bin/FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FRM.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

7. Form Function 
-- --------------------- 
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FUNC.ldt FUNCTION FUNCTION_NAME="FORM_FUNCTION_NAME"

$FND_TOP/bin/FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FUNC.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

8. Alerts 
-- --------- 
FNDLOAD apps/apps 0 Y DOWNLOAD $ALR_TOP/patch/115/import/alr.lct XX_CUSTOM_ALR.ldt ALR_ALERTS APPLICATION_SHORT_NAME=XXCUST ALERT_NAME="XX - Alert Name"

FNDLOAD apps/apps 0 Y UPLOAD $ALR_TOP/patch/115/import/alr.lct XX_CUSTOM_ALR.ldt CUSTOM_MODE=FORCE

9. Value Set 
-- -------------- 
$FND_TOP/bin/FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct XX_CUSTOM_VS.ldt VALUE_SET FLEX_VALUE_SET_NAME="XX Value Set Name"

$FND_TOP/bin/FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct XX_CUSTOM_VS.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

10. Data Definition and Associated Template 
--- ---------------------------------------------------------- 
FNDLOAD apps/$CLIENT_APPS_PWD O Y DOWNLOAD  $XDO_TOP/patch/115/import/xdotmpl.lct XX_CUSTOM_DD.ldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME='XXCUST' DATA_SOURCE_CODE='XX_SOURCE_CODE' TMPL_APP_SHORT_NAME='XXCUST' TEMPLATE_CODE='XX_SOURCE_CODE'

FNDLOAD apps/$CLIENT_APPS_PWD O Y UPLOAD $XDO_TOP/patch/115/import/xdotmpl.lct XX_CUSTOM_DD.ldt

11. DATA_TEMPLATE (Data Source .xml file) 
--- ---------------------------------------------------------- 
java oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XX_HOST_NAME)(PORT=XX_PORT_NUMBER))(CONNECT_DATA=(SERVICE_NAME=XX_SERVICE_NAME)))' -LOB_TYPE DATA_TEMPLATE -LOB_CODE XX_TEMPLATE -APPS_SHORT_NAME XXCUST -LANGUAGE en -lct_FILE $XDO_TOP/patch/115/import/xdotmpl.lct -LOG_FILE $LOG_FILE_NAME

java oracle.apps.xdo.oa.util.XDOLoader UPLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XX_HOST_NAME)(PORT=XX_PORT_NUMBER))(CONNECT_DATA=(SERVICE_NAME=XX_SERVICE_NAME)))' -LOB_TYPE DATA_TEMPLATE -LOB_CODE XX_TEMPLATE -XDO_FILE_TYPE XML -FILE_NAME $DATA_FILE_PATH/$DATA_FILE_NAME.xml -APPS_SHORT_NAME XXCUST -NLS_LANG en -TERRITORY US -LOG_FILE $LOG_FILE_NAME

12. RTF TEMPLATE (Report Layout .rtf file) 
--- ------------------------------------------------------- 
java oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XX_HOST_NAME)(PORT=XX_PORT_NUMBER))(CONNECT_DATA=(SERVICE_NAME=XX_SERVICE_NAME)))' -LOB_TYPE TEMPLATE -LOB_CODE XX_TEMPLATE -APPS_SHORT_NAME XXCUST -LANGUAGE en -TERRITORY US -lct_FILE $XDO_TOP/patch/115/import/xdotmpl.lct -LOG_FILE $LOG_FILE_NAME

java oracle.apps.xdo.oa.util.XDOLoader UPLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XX_HOST_NAME)(PORT=XX_PORT_NUMBER))(CONNECT_DATA=(SERVICE_NAME=SERVICE_NAME)))' -LOB_TYPE TEMPLATE -LOB_CODE XX_TEMPLATE -XDO_FILE_TYPE RTF -FILE_NAME $RTF_FILE_PATH/$RTF_FILE_NAME.rtf -APPS_SHORT_NAME XXCUST -NLS_LANG en -TERRITORY US -LOG_FILE $LOG_FILE_NAME

13 - Request Group


FNDLOAD apps/******(password) O Y DOWNLOAD $FND_TOP/patch/115/import/afcpreqg.lct DATALOADERFILE.ldt REQUEST_GROUP REQUEST_GROUP_NAME="Your Request Group name" APPLICATION_SHORT_NAME="Your Request Group Application short name" REQUEST_GROUP_UNIT UNIT_NAME="Your concurrent program short name"

24 Ekim 2013 Perşembe

Concurrent oluşturma



Concurrent olusturma procedure'u:
Yazılan procedure un
( ....
errbuf OUT VARCHAR2,
retcode OUT NUMBER

seklinde parametreleri olmak zorundadir.
  • Oracle 'a girilir (Uygulama Yazılımı Geliştiricisi) 
    1- Yürütülür program tanımlanır.
  • Uygulama Yazılımı Geliştiricisi menusunden Eşzamanlı ->Yürütülür menusune girilir.
  • Yürütülebilir dosya adı alanına Concurrent i açıklayan bir yazı yazılır.
  • Kısa Ad alanına özet isim verilebilir (Genelde procedure ismi verilir)
  • Uyg. Yzlm alanına Yeşim Uygulama Geliştirme yazılır
  • Procedure ise PL/SQL Saklanan procedure secilir.
  • Çalıştırma Dosyası Adı alanına yazılan procedure un ismi yazilir. Başına APPS yazmaya gerek yok. Diger semalardan yararlanilacaksa mesela SEVK ise basina SEVK yazılır.
  • Aşama fonksiyon parametreleri alanina girilerek parametreler belirlenir.
  • Kaydet tuşuna basilir.

















  • 2- Program tanımlanır.
  • Uygulama Yazılımı Geliştiricisi menusunden Eşzamanlı ->Programı menusune girilir.
  • Program alanına açıklayızı programın adi yazilir.
  • Kısa Ad alanına özet isim verilir.
  • Uyg yzlm alanına Yeşim Uygulama Geliştirme yazılır
  • Çalıştırılan dosya kısmında Ad alanına procedure ismi yazılır.
  • Yontem alanına PL/SQL Saklanan procedure u yazılır.
  • Kaydet tuşuna basılır.



  • 3- İlgili kisilere yetkiler verilir. Yetki için 
  • Oracle Application System Administrator ile gelen ekrandan;


Security : Responsibility define ile ekran açılır.






Request grup alanından name alınır.

Daha sonra ;


Responsibility Request ile


Oluşturduğumuz concurrent sorumluluk altında tanımlanır ve kaydedilir. Concurrent çalıştırılmaya hazırdır.

  • Concurrent calistirmak icin ise 
  • Gorunum -> Talepler menusunden
    Yeni talep gonder botununa tiklanır.
    Tek talep secilir OK denir
    Adı yazılır (F11 ile arama yapılabilir)
    Başlat denir.






10 Temmuz 2012 Salı

Oracle Mobile Web Applications (MWA)


Oracle Mobile Web Applications (MWA)


Oracle Mobile Web Applications uygulamalarının nasıl yapıldığını anlatmaya çalışacağım.

Öncelikle kullanıcımıza yetki vermemiz gerekiyor.

Burada kullanıcımıza “Depo Yönetimi Mobil Kullanıcısı” yetkisini veriyorum.

Mobile servisi açık değilse
Putty ile giriş yapılıp

cd $INST_TOP/admin/scripts
mwactl.sh start 10550

komutları çalıştırılır.

Servis daha önceden açık ve kapatılmak isteniyorsa

cd $INST_TOP/admin/scripts
mwactl.sh -login apps/apps stop_force 10550

komutları ile kapatılabilir.

Herşeyin hazır olduğunu kontrol etmek için mwagui dizininde (internetten bulunabilir) bulunan startMWA_GUI.bat dosyasını aşağıdakine benzer bir şekilde duzenlemek gerekiyor.

set MWA_GUI_TOP=C:\mwagui_new
set JAVA_TOP="C:\Program Files\Java\jdk1.6.0_32"
%JAVA_TOP%\bin\java -classpath %JAVA_TOP%\lib\classes.zip;%MWA_GUI_TOP%\lib\j9969932_3p.zip;%MWA_GUI_TOP%\lib\j9969932_fnd.zip;%MWA_GUI_TOP%\lib\j9969932_mwa.zip -Dfile.encoding=cp857 -Duser.language=tr_TR oracle.apps.mwa.awt.client.StartGUI

Ardından bu dosyayı calistirdigimizda
Gibi bir ekran çıkacaktır. Burada server bilgilerini ve portu girdikten sonra Connect denirse
Gibi bir ekran gelecektir. Default menusune tıklanarak
Kullanici giriş ekranına gelinir.
Kullanici adi ve şifre girildikten sonra
Menumuz gelir.
Bu menuye bizim hazırladığımız ekranları ekleyebiliriz.
Bunu yapmadan önce kodlarımızı hazırlayalım.
3 farklı dosyamız olacak (Bu dosyalar http://oracle.anilpassi.com/hello-world-mobile-supply-chain-application-framework-6.html adresinden alınmıştır.)
1-      CustomTestFListener.java dosyası
2-      CustomTestFunction.java dosyası
3-      CustomTestPage.java dosyası

Kodlar aşağıdadır.

CustomTestFListener.java dosyası

/* Listener Class - Handles all events */

//package xxx.custom.server;
package xxysm.oracle.apps.inv;

import oracle.apps.inv.utilities.server.UtilFns;
import oracle.apps.mwa.beans.FieldBean;
import oracle.apps.mwa.container.Session;
import oracle.apps.mwa.eventmodel.AbortHandlerException;
import oracle.apps.mwa.eventmodel.DefaultOnlyHandlerException;
import oracle.apps.mwa.eventmodel.InterruptedHandlerException;
import oracle.apps.mwa.eventmodel.MWAEvent;
import oracle.apps.mwa.eventmodel.MWAFieldListener;


public class CustomTestFListener implements MWAFieldListener
{
  public CustomTestFListener()
  {
  }

  public void fieldEntered(MWAEvent mwaevent) throws AbortHandlerException,
                                                     InterruptedHandlerException,
                                                     DefaultOnlyHandlerException
  {
    UtilFns.trace("Inside Field Entered");
    ses = mwaevent.getSession();
    String s = UtilFns.fieldEnterSource(ses);
    // Prints the Current Bean's ID
    UtilFns.trace("CustomFListener:fieldEntered:fldName = " + s);
  }

  public void fieldExited(MWAEvent mwaevent) throws AbortHandlerException,
                                                    InterruptedHandlerException,
                                                    DefaultOnlyHandlerException
  {
    String s = ((FieldBean)mwaevent.getSource()).getName();
    // Prints the Current Bean's ID
    UtilFns.trace("CustomFListener:fieldExited:fldName = " + s);

    // Get handle to session and page
    Session ses = mwaevent.getSession();
    pg = (CustomTestPage)ses.getCurrentPage();

    // when the user clicks the Submit button call the method to print
    // Hello world with the text entered in text box

     if (s.equals("TEST.SUBMIT"))
     {
       pg.print(mwaevent,pg.getHelloWorld());
       return;
      }
  }
  // Varibale declaration
  CustomTestPage pg;
  Session ses;
}


CustomTestFunction.java dosyası:

/* Function class - this links the page with FND Function in AOL */
//package xxx.custom.server;

package xxysm.oracle.apps.inv;

import oracle.apps.fnd.common.VersionInfo;
import oracle.apps.inv.utilities.server.UtilFns;
import oracle.apps.mwa.beans.MenuItemBean;
import oracle.apps.mwa.eventmodel.MWAAppListener;
import oracle.apps.mwa.eventmodel.MWAEvent;

public class CustomTestFunction extends MenuItemBean implements MWAAppListener
{

  public CustomTestFunction()
  {
    //Link the page with the function
    //setFirstPageName("xxx.custom.server.CustomTestPage");
    setFirstPageName("xxysm.oracle.apps.inv.CustomTestPage");
    addListener(this);
  }

  public void appEntered(MWAEvent mwaevent)
  {
    // Code here to initialize Application Level

    // Logging Functions
    UtilFns.trace("Application Entered");
  }

  public void appExited(MWAEvent mwaevent)
  {
    // Code to be executed when the user exits the application

    // Logging Functions
    UtilFns.trace("Application Exited");
  }

  public static final String RCS_ID = "$Header:$";
  public static final boolean RCS_ID_RECORDED =
    VersionInfo.recordClassVersion("$Header:$", "%packageheader%");

}


CustomTestPage.java dosyası:

/* Page Class - Which has the Page Layout. We create and add beans to it */

//package xxx.custom.server;

package xxysm.oracle.apps.inv;

import oracle.apps.fnd.common.VersionInfo;
import oracle.apps.inv.utilities.server.UtilFns;
import oracle.apps.mwa.beans.ButtonFieldBean;
import oracle.apps.mwa.beans.PageBean;
import oracle.apps.mwa.beans.TextFieldBean;
import oracle.apps.mwa.eventmodel.AbortHandlerException;
import oracle.apps.mwa.eventmodel.DefaultOnlyHandlerException;
import oracle.apps.mwa.eventmodel.InterruptedHandlerException;
import oracle.apps.mwa.eventmodel.MWAEvent;

//import xxx.custom.server.CustomTestFListener;
import xxysm.oracle.apps.inv.CustomTestFListener;

//Page Listener Class

public class CustomTestPage extends PageBean
{
  /**
   * Default constructor which just initialises the layout.
   */
  public CustomTestPage()
  {
    //Method to initialize the layout
    initLayout();
  }


  /**
   * Does the initialization of all the fields. Creates new instances
   * and calls the method to set the prompts which may have to be later
   * moved to the page enter event if we were using AK prompts as we
   * require the session for the same.
   */
  private void initLayout()
  {

    //Logging
    if (UtilFns.isTraceOn)
      UtilFns.trace("CustomPage initLayout");

    //Create a Text Filed and Set an ID
    mHelloWorld = new TextFieldBean();
    mHelloWorld.setName("TEST.HELLO");

    // Create a Submit Button and set an ID
    mSubmit = new ButtonFieldBean();
    mSubmit.setName("TEST.SUBMIT");

    //add the fields
    addFieldBean(mHelloWorld);
    addFieldBean(mSubmit);

    //add field listener to all necessary fields
    CustomTestFListener fieldListener = new CustomTestFListener();

    mHelloWorld.addListener(fieldListener);
    mSubmit.addListener(fieldListener);

    //call this method to initializa the prompts
    this.initPrompts();
  }


  /**
   * Method that sets all the prompts up.
   */
  private void initPrompts()
  {

    UtilFns.trace(" Custom Page - Init Prompts");

    // sets the page title
    this.setPrompt("Test Custom Page");

    // set the prompts for all the remaining fields
    mHelloWorld.setPrompt("Enter Your Name");
    mSubmit.setPrompt("Submit");

    //please note that we should not hard code page name and prompts
    //as it may cause translation problems
    //we have an different procedure to overcome this

  }

  // This method is called when the user clicks the submit button

  public void print(MWAEvent mwaevent,
                    TextFieldBean mTextBean) throws AbortHandlerException
  {
    UtilFns.trace(" Custom Page - print ");

    // Get the value from Text bean and append hello world
    // and display it to user on the same field
    String s = mTextBean.getValue();
    mTextBean.setValue(s + " Hello World");
  }

  // Method to get handle of TextBean

  public TextFieldBean getHelloWorld()
  {
    return mHelloWorld;
  }

  //Method called when the page is entered

  public void pageEntered(MWAEvent e) throws AbortHandlerException,
                                             InterruptedHandlerException,
                                             DefaultOnlyHandlerException
  {

    UtilFns.trace(" Custom Page - pageEntered ");

  }

  //Method called when the page is exited

  public void pageExited(MWAEvent e) throws AbortHandlerException,
                                            InterruptedHandlerException,
                                            DefaultOnlyHandlerException
  {
    UtilFns.trace(" Custom Page - pageExited ");
  }

  // Create the Bean Variables
  TextFieldBean mHelloWorld;
  protected ButtonFieldBean mSubmit;

}


Kodları Jdeveloper gibi bir java compiler programı ile açıp derlememiz gerekiyor.





JDeveloperda Make komutu bizim işimize yarayacaktır. Her dosyayı aynı şekilde derledikten sonra oluşan class doyalarını $JAVA_TOP dizininde kendimize ozel olarak tanımladığımız yere atabiliriz(.../xxysm/oracle/apps/inv gibi).

Şimdi hazırladığımız ekranı menuye eklemeye sıra geldi.
Yukarıda da görüldüğü gibi menumuz WMS_MOB_NAVIGATE. Bu menuye ekleme yapabilmemiz icin öncelikle fonksiyonumuzu tanımlamamız gerekiyor.
 Test fonksiyonunu tanımlayarak başlıyorum.
Özellikler tabından
 Mobil İş Yönetim Sistemi Tipi secilir.
Ekran tabını oldugu gibi bırakıyoruz.
Web HTML tabında ise
Class dosyalarımızın dizinindeki function (xxysm.oracle.apps.inv.CustomTestFunction) belirtilir.
Kaydetme işleminden sonra fonksiyonumuz tanımı tamamlanmış olacak.
Menuye fonksiyonumuz eklendikten sonra bu fonksiyon kullanılabilir durumdadır.
Görüldüğü gibi Mobil Test fonksiyonumuz menuye eklenmiş.
Menuye tıkladığımızda bizim ekranımız gelir.
İsmimizi yazıp Submit tuşuna bastığımızda,
Türkçe karakterleri desteklemeyerek sonucu verdiğini görürüz. 


Burada sistemde oluşan hataları bulabilmemiz için $INST_TOP/admin/install /mwa.cfg dosyasındaki
mwa.LogLevel = trace
Değerini yukarıdaki gibi değiştiriyoruz...

cd $INST_TOP/logs ile giriş yapılıp
tail –f  10550.system.log
ile log kontrolu yapılır...

Türkçe karakter çözümü için ise
linkindeki aşağıdaki çözümü uygulayabilirsiniz.

NLS Support

Here are some tips for implementing the mobile GUI with Multi-language (MLS/NLS). Some customers had issues with character encoding (for example Turkish characters). Here are steps followed to fix the issue:
1:- Download and apply server side Patch 11853398
2:- Set the "ICX: Language" profile at USER level to <REQUIRED LANGUAGE> for a Mobile user.
3:- Shutdown the MWA servers
4:- Download MWA GUI multilingual GUI Patch 12574324
5:- Create client folder and extract the files from the zip
unzip p12574324_11i_WINNT.zip C:\NLSMWAGUI_12574324

cd C:\NLSMWAGUI_12574324

cp 12574324_mwa.zip C:\NLSMWAGUI_12574324\lib
cp 12574324_3p.zip C:\NLSMWAGUI_12574324\lib
cp j12574324_ak.zip C:\NLSMWAGUI_12574324\lib
cp j12574324_fnd.zip C:\NLSMWAGUI_12574324\lib

6:- Create a cmd file to start the client
set MWA_GUI_TOP=C:\NLSMWAGUI_12574324
set JAVA_TOP=C:\Progra~1\Java\jre6
%JAVA_TOP%\bin\java -Dfile.encoding=UTF8 -Duser.language=TR -classpath %JAVA_TOP%\lib\classes.zip;%MWA_GUI_TOP%\j12574324_mwa.zip;%MWA_GUI_TOP%\j12574324_3p.zip;%MWA_GUI_TOP%\j12574324_ak.zip;%MWA_GUI_TOP%\j12574324_fnd.zip oracle.apps.mwa.awt.client.StartGUI