如果報表的產出, 希望可以直接轉成 Excel, 一般的作法會使用 XML Publisher, 但是資料量一大, 執行效率就不好; Discoverer 則是不夠彈性, 而且使用者需要另外登入 Discoverer 系統; Report 再另存 (使用特定分隔符號), 使用者則必須先將 Output 存成 CSV / TSV, 再用 Excel 開啟

在網路上找到一種作法, 它可以讓使用者在 View Output 時, 直接把產出存為 Excel 格式, 對使用者來說很方便, 對 IT 人員開發報表上也很便宜, 無需針對報表格式做規劃, 只需要把 SQL 寫好, 查詢條件定義好, 加上 Dynamic SQL 就完成了

Aloz 發表在 痞客邦 留言(3) 人氣()

新寫的一隻 PDF Report, 跑出了 Error, 但是看 Log 也沒寫什麼, 就只出現了 "emsg:was terminated by signal 11" 的文字, Google 了半天才知道發生的原因, 原來是 Data Model 裡的 Query 有問題

Aloz 發表在 痞客邦 留言(0) 人氣()

列出比較常用的 Exception

Aloz 發表在 痞客邦 留言(1) 人氣()

123.23 => ONE HUNDRED AND TWENTY-THREE DOLLARS AND TWENTY-THREE

 

SELECT TO_CHAR(TO_DATE(TRUNC(123.23), 'J'), 'JSP') || ' DOLLARS AND ' || TO_CHAR(TO_DATE(TO_NUMBER(SUBSTR (123.23, INSTR (123.23, '.') + 1)), 'J'),'JSP')||' CENTS'
  FROM DUAL;

 

但是, 如果小數位數大於兩位, 結果會回傳阿拉伯數字....


@20160913

有朋友發現太大的數字會出現錯誤訊息:

ORA-01830: date format picture ends before converting entire input string

參考下方的連結, 其中說明到這個方式只能處理到 5373484.

http://viralpatel.net/blogs/convert-number-into-words-oracle-sql-query/

如果需要處理更大的數字, 就必須使用 Function 來處理, 一樣可參考連結中的做法 :)

 

Aloz 發表在 痞客邦 留言(1) 人氣()

之前針對 RUP7 的升級所做的測試中有發現, Form 的 Focus 會有亂掉的問題, DBA 上了一些 Patch 之後, 看起來問題是解決了大半 (Firefox 與 Chrome 無法轉換視窗 Focus 還是無解), 正式環境更新後, 好像就沒事了......事情那麼簡單就好囉

最近發現, 有些客製甚至標準 Form 的 Tab Page 會有異常 (包含 Personalize), 症狀有 :

1. 對 Tab Page 做生失效, Focus 大亂

2. LOV 失效

3. 如果前一個  Block 的 Delete Allowed 為 False, 切到 Tab Page 內的 Block 後, 就算 Delete Allowed 為 True, 也無法正確顯示 Delete Allowed

原因應該是, AOL 的標準中有提到, "Tab Page 要放置 Block, 必須先有一層 Stock Canvases, Block 必須建立在 Stock Canvases 中, 那在切換 Tab Page 時, 要自行編寫 Show / Hide 來控制 Stock Canvases", 所以 Metalink 就認為, 你會踩到這個問題, 就表示你沒有遵循 AOL 標準, 所以這不是問題, 請改寫你的 Form. 不過, 它倒是沒有解釋標準 Form 為什麼有些也會踩到就是了 (笑)

要避過這些問題也不是不能, 就是要多測試, 那原先已經寫好的 Form 或 Personalize, 就再拿出來檢查檢查囉.......

Aloz 發表在 痞客邦 留言(0) 人氣()

這個與 Oracle ERP 無關, 但是我覺得還蠻重要的 (其實是自己沒有學過貿易相關的東西 XD)

剛上線時, 在檢查客戶資料或是出貨資料, 常常會發現有些客戶的 Bill To / Ship To 會出現 C/O 的字眼, 很明顯的是縮寫, 問使用者又沒人知道 (客戶要他顯示這樣他就照打, 也不會去了解意思). 最近, 有客戶要求要顯示 On Behalf of (O/B) 的字眼, 這才讓我花了時間去找出 C/OO/B 的用法, 有點模糊, 但是有個概念了....

- 範例 :

在國外的 A 公司要求國內的 B 公司送貨到它那邊

- Care Of : C/O

就字眼上, 或從網路上找的資料, "轉交" 就是它的意思, 大多是影響進口關稅的規屬, 例如, A 不想要負擔進口到它國家的進口關稅時, 它就會要求 B 在進出口文件上顯示 : "B C/O A" 這樣的文字, 如此, 進口關稅就會去找 B 要了

(註: 應該有更明確的定義, 但是目前還沒找到)

- On Behalf of : O/B

網路上查到的資料不多, 應該是 "代表" 或 "代理" 之意. 根據 單信用證統一慣例 (UCP500) 中, 有關運送單據簽署之規定 : "由運送人 (Carrier) 或船長 (Master) 之代理人簽署者:須表明其身分(表明其為代理人)及代理之權限, 被代理人之名稱及被代理人之身分". 用上面的例子來說, 會寫成 "A O/B B"

Aloz 發表在 痞客邦 留言(0) 人氣()

標題很長 XD

重點就是, 當我們將 User 的 Responsibility 的失效日拿掉之後, User 還是看不到這個 Responsibility, 在此篇文章 (Metalink Doc ID : 782720.1) 有說明

原因 : 在 WF_LOCAL_USER_ROLES 這個 Table 中, EFFECTIVE_END_DATE 沒有被同步更新到

解法 :

先將資料找出來, 可以用 User Name 來做搜尋, 然後將 EFFECTIVE_END_DATE 修改正確

(Oracle 很奇怪, 在這邊, 它統一把 END_DATE 設為 9999-01-01, 而不是常用的 4712-12-31)

SELECT A.ROWID
      ,A.*
  FROM WF_LOCAL_USER_ROLES A
 WHERE 0 = 0
   AND USER_NAME = UPPER(:USERNAME)
   AND ROLE_ORIG_SYSTEM = 'FND_RESP'
   AND USER_END_DATE IS NULL
   AND ROLE_END_DATE IS NULL
   AND EFFECTIVE_END_DATE < SYSDATE;

 

註 : 這個問題在上了 RUP 7 之後也修正掉了

WF_LOCAL_USER_ROLES在

Aloz 發表在 痞客邦 留言(0) 人氣()

有一位使用者, 將 IE 6 升級為 IE 7 之後, 只要點選 Form Function 時, 左下角就會出現網頁錯誤, 錯誤的內容為 :

行:2719

字元:1

錯誤:元素找不到

字碼:0


URL:http://xxxx:8xxx/OA_HTML?AppsLocalLogin.jsp.

Google 了一下發現, 有人也遇到同樣的問題, 而且有解法

 

Check the following registry key value:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}\1.1\0\win32\

which should be:

c:\windows\system32\shdocvw.dll - where c:\windows is the windows install directory for IE6,

but

c:\windows\system32\ieframe.dll - where c:\windows is the windows install directory for IE7

Aloz 發表在 痞客邦 留言(0) 人氣()

Oracle ERP 更新到 RUP7 之後, 開始改用 JRE 去跑 Oracle Form 與 Discoverer, 沒想到問題一堆, 目前碰到的問題有

- Oracle Form

1. IE 6 / 7 / 8 使用任一版本 JRE 都可以正常使用, 但是 Firefox 3.6 / Chrome 都無法正確啟動 JRE

    => 解法 : 將目前系統預設的 JRE 版本 (例如, 預設為 Java 1.6 Update 3), 將該版本的 dll 檔 (例如, npjpi160_03.dll) 複製到 Firefox 目錄下的 plugins 資料夾, 就可以正確啟動

    => Chrome 也可以使用相同的方式解決

2. 會有 Form Focus 問題 (Metalink Doc ID : 760250.1)

    => 大意是, 如果你的客製程式沒有依照 AOL 的標準, 就很有可能會踩到地雷, 不過, 就連 Oracle 自己有些畫面也沒有依照 AOL 的標準寫法, 所以連 Personalize 都有機會踩到

- Discoverer

1. 用 Java 1.6 Update 17 以上, 內容會出現亂碼, 但 Java 1.6 Update 16 是正常

Aloz 發表在 痞客邦 留言(0) 人氣()

OM 模組底下有一個功能 : Processing Constraints (路徑 : Setup > Rules > Security > Processing Constraints), 此功能是用來定義, 在 OM 模組所屬的畫面, 什麼時候要做什麼, 什麼時候不能做什麼

畫面很簡單, 最上面的部份就是選擇 Application 與 畫面 (Entity)

中間的部分就是設定 Constraints 的地方 :

- Operation : 就是指定動作 (LOV 會因為 Entity 的不同而不同)

- Attribute : 讓你選擇特定欄位 (LOV 會因為 Entity 的不同而不同)

- User Action : 當條件成立時, 你所要執行的動作

最下面就是設定 Conditions :

- Group# : 條件可以設定群組, 群組編號相同就表示為 AND, 不同則為 OR

- Scope : Any / All

- Validation Entity : 選擇條件所在 Entity

- Record Set : Form 的 Data Block

- Validation Template : 驗證範本 (另一個彈性功能)

- User Message : 顯示給使用者看的訊息 (不見得會顯示, 要看你所設定的 User Action, 但是因為是必填, 所以一定要打)


附上目前有使用的功能 :

1. 修改 Ordered Quantity 時, 記錄 History

** Constraints **

- Operation : Update

- Attribute : Ordered Quantity

- User Action : Required History

** Conditions **

- Group# : 1

- Scope : Any

- Validation Entity : Order Header

- Record Set : Order

- Validation Template : Booked

- User Message : Ordered Quantity haved been updated!!

 

2. 當 Delivery 確認 (Firm) 後, 不允許修改 Order Line 的任一欄位

** Constraints **

- Operation : Update

- Attribute : 

- User Action : Not Allowed

** Conditions **

- Group# : 1

- Scope : Any

- Validation Entity : Order Line

- Record Set : Line

- Validation Template : Delivery Firm (自行客製)

- User Message : No Allowed Update!! This line which delivery is firmed. (因為此設定會讓使用者無法操作, 所以設定的 Message 會跳出來給使用者看)

Aloz 發表在 痞客邦 留言(2) 人氣()

Close

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼