2024年11月22日 星期五

[NotesAP] 變更角色,指定簽核人員

  [NotesAP] 變更角色,指定簽核人員


讓駁回也可以變更的片段程式

ForAll x In doc.GTApprSignedFlowPerList

ReDim Preserve UF(ufc) 

tempSTR$="@word(""" & X & """;""^"";3)"'取角色名稱

t_step_name = Evaluate(tempSTR$)


If t_step_name(0)="檢驗人員" Then'角色名稱為「檢驗人員」就進行置換


tempSTR_Ename$="@word(""" & X & """;""^"";61)"'取原英文名

t_Ename = Evaluate(tempSTR_Ename$)

tempSTR_Cname$="@word(""" & X & """;""^"";62)"'取原中文名

t_Cname = Evaluate(tempSTR_Cname$)

tempSTR_Replace1$=|@ReplaceSubstring("| & X & |";"| & t_Ename(0) & |";"| & doc.new_Esigner(0) & |")|'把檢驗人員那行的英文名置換

t_Replace1 = Evaluate(tempSTR_Replace1$)

tempSTR_Replace2$=|@ReplaceSubstring("| & t_Replace1(0) & |";"| & t_Cname(0) & |";"| & doc.new_Csigner(0) & |")|'把檢驗人員那行的中文名置換

t_Replace2 = Evaluate(tempSTR_Replace2$)

X=t_Replace2(0)'整行換掉


End If

UF(ufc)=X 

ufc=ufc+1

End ForAll

doc.GTApprSignedFlowPerList=UF '重組過的放回GTApprSignedFlowPerList


'// =========================================

最終結果:

原GTApprSignedFlowPerList:

"1^1^申請者^簽核中^申請者^^1^^^^^>^^^^1^GTApprMemo^GTApprMemoTemp^2^^^^^^^1^^1^1^GTApprRoleList^1^GTApprNameList^1:2^1^1^GTApprSignList^1^GTApprActionList^^^^^^^^^^^^^^^^^^2>0>1>核准>>(CheckRCV)>(SendMail1)>>1>6^^^^^cine liu/OGXXX^呂坤信^1184^5210^營運企劃處/物料暨進出口管理部/倉儲管理課^P232^董事長/總經理>總經理室>營運企劃處>營運企劃處/物料暨進出口管理部^G200>G202>P200>P230^專案副理^0^^^1^2024/9/9^1899/12/30 08:30:00^2024/9/9^1899/12/30 17:30:00^營運企劃處/物料暨進出口管理部/倉儲管理課 資深管理師: 彭漢銓 (hanquan peng/OGXXX)^物料暨進出口管理部/倉儲管理課 課經理: 江宏龍 (mark chiang/OGXXX)^物料暨進出口管理部/倉儲管理課 課經理: 江宏龍 (mark chiang/OGXXX)"

"1^6^檢驗人員^簽核中^被指定人員^^1^^^^^>^^^^1^GTApprMemo^GTApprMemoTemp^2^^^^^^^1^^1^1^GTApprRoleList^1^GTApprNameList^1:2^1^1^GTApprSignList^1^GTApprActionList^^^^^^^^^^^^^^^^^^2>0>1>核准>>(CheckAll)>(SendMail3)>>1>6:3>0>1>駁回>>>($MailReject)>1>1>6:8>>>>>>>>>^^^^^terry liu/OGXXX^劉鎮彰^211252^6732^廠務部/水氣化二課^F162^董事長/總經理>晶圓製造中心>晶圓製造中心/廠務處>廠務處/廠務部^G200>M010>F100>F160^副理^0^^^1^2024/9/9^1899/12/30 08:30:00^2024/9/9^1899/12/30 09:30:00^廠務部/水氣化二課 課經理: 鍾朝全 (cc chung/OGXXX)^^"

"1^8^檢驗單位主管一^簽核中^被指定人員^^1^^^^^>^^^^1^GTApprMemo^GTApprMemoTemp^2^^^^^^^1^^1^1^GTApprRoleList^1^GTApprNameList^1:2^1^1^GTApprSignList^1^GTApprActionList^^^^^^^^^^^^^^^^^^2>0>1>核准>>(CheckAll)>($MailNext)>>1>6:3>0>1>駁回>>>($MailReject)>6>1>6^^^^^cc chung/OGXXX^鍾朝全^211048^6733^廠務部/水氣化二課^F162^董事長/總經理>晶圓製造中心>晶圓製造中心/廠務處>廠務處/廠務部^G200>M010>F100>F160^課經理^1^5^^1^2024/8/5^1899/12/30 08:30:00^2024/8/5^1899/12/30 17:30:00^廠務部/水氣化二課 資深副理: 吳怡良 (williamye wu/OGXXX)^^"




新GTApprSignedFlowPerList:

"1^1^申請者^簽核中^申請者^^1^^^^^>^^^^1^GTApprMemo^GTApprMemoTemp^2^^^^^^^1^^1^1^GTApprRoleList^1^GTApprNameList^1:2^1^1^GTApprSignList^1^GTApprActionList^^^^^^^^^^^^^^^^^^2>0>1>核准>>(CheckRCV)>(SendMail1)>>1>6^^^^^cine liu/OGXXX^呂坤信^1184^5210^營運企劃處/物料暨進出口管理部/倉儲管理課^P232^董事長/總經理>總經理室>營運企劃處>營運企劃處/物料暨進出口管理部^G200>G202>P200>P230^專案副理^0^^^1^2024/9/9^1899/12/30 08:30:00^2024/9/9^1899/12/30 17:30:00^營運企劃處/物料暨進出口管理部/倉儲管理課 資深管理師: 彭漢銓 (hanquan peng/OGXXX)^物料暨進出口管理部/倉儲管理課 課經理: 江宏龍 (mark chiang/OGXXX)^物料暨進出口管理部/倉儲管理課 課經理: 江宏龍 (mark chiang/OGXXX)"

"1^6^檢驗人員^簽核中^被指定人員^^1^^^^^>^^^^1^GTApprMemo^GTApprMemoTemp^2^^^^^^^1^^1^1^GTApprRoleList^1^GTApprNameList^1:2^1^1^GTApprSignList^1^GTApprActionList^^^^^^^^^^^^^^^^^^2>0>1>核准>>(CheckAll)>(SendMail3)>>1>6:3>0>1>駁回>>>($MailReject)>1>1>6:8>>>>>>>>>^^^^^cc ou/OGXXX^歐金昌^211252^6732^廠務部/水氣化二課^F162^董事長/總經理>晶圓製造中心>晶圓製造中心/廠務處>廠務處/廠務部^G200>M010>F100>F160^副理^0^^^1^2024/9/9^1899/12/30 08:30:00^2024/9/9^1899/12/30 09:30:00^廠務部/水氣化二課 課經理: 鍾朝全 (cc chung/OGXXX)^^"

"1^8^檢驗單位主管一^簽核中^被指定人員^^1^^^^^>^^^^1^GTApprMemo^GTApprMemoTemp^2^^^^^^^1^^1^1^GTApprRoleList^1^GTApprNameList^1:2^1^1^GTApprSignList^1^GTApprActionList^^^^^^^^^^^^^^^^^^2>0>1>核准>>(CheckAll)>($MailNext)>>1>6:3>0>1>駁回>>>($MailReject)>6>1>6^^^^^cc chung/OGXXX^鍾朝全^211048^6733^廠務部/水氣化二課^F162^董事長/總經理>晶圓製造中心>晶圓製造中心/廠務處>廠務處/廠務部^G200>M010>F100>F160^課經理^1^5^^1^2024/8/5^1899/12/30 08:30:00^2024/8/5^1899/12/30 17:30:00^廠務部/水氣化二課 資深副理: 吳怡良 (williamye wu/OGXXX)^^"


2023年7月10日 星期一

[LotusScript] 檢核資料庫ACL群組

 Sample Code:


Sub SetGroupPermissions()
    Dim session As New NotesSession
    Dim serverName As String
    Dim dbDirectory As NotesDbDirectory
    Dim database As NotesDatabase
    Dim acl As NotesACL
    Dim entry As NotesACLEntry
    
    serverName = session.CurrentDatabase.Server ' 取得目前伺服器名稱
    
    ' 開啟資料庫目錄
    Set dbDirectory = session.GetDbDirectory(serverName)
    
    ' 處理所有資料庫
    Set database = dbDirectory.GetFirstDatabase(DATABASE)
    While Not database Is Nothing
        ' 開啟 ACL
        Set acl = database.ACL
        
        ' 檢查群組是否已存在於 ACL 中
        Set entry = acl.GetEntry("DeclineAccess", True)
        If entry Is Nothing Then
            ' 如果群組不存在,創建一個新的 ACL設定
            Set entry = acl.CreateACLEntry("DeclineAccess", ACLLEVEL_NOACCESS)
        Else
            ' 如果群組已存在,設定權限級別為無權限
            Call entry.SetLevel(ACLLEVEL_NOACCESS)
        End If
        
        ' 將群組類型設為個人群組
        entry.IsPersonGroup = True        
        
        ' 更新 ACL
        Call acl.Save()
        
        ' 取得下一個資料庫
        Set database = dbDirectory.GetNextDatabase
    Wend
    
    MsgBox "群組權限設定完成。"
End Sub

2023年5月22日 星期一

[AP] 修改欄位 (formula)

@If(@IsNotMember(@UserRoles; "[DataMgr]");@Return("");@Success);

FieldName :=@Prompt([OkCancelEdit]; "Field Name";"Please enter the Field Name you want to modify..."; @Success);

FieldValue :=@Prompt([OkCancelEdit]; "Field Value";"Please enter the Field Value(use ; to separate multiple values)"; @Success);

@SetField(FieldName; @Explode(Value; ";"));

Select @All

2018年5月18日 星期五

[AP] Function AddString()


xdoc.Log_EH= AddString(xdoc, "執行Agent[.資料修正\彈性假異動] " + Server_Time() +" by "+s.UserNameList(0).Abbreviated, "Log_EH")


Function AddString(doc As NotesDocument, strContent As String, itemName As String) As Variant
REM This program append the strContent into Field as the next attrib with Name as itemName
 Dim i As Integer, ub As Integer
 Dim NIT As NotesItem
 ub = Ubound(doc.GetItemValue(itemName))
 Redim tmp(ub+1) As String
 If Ubound(doc.GetItemValue(itemName))=0 And doc.GetItemValue(itemName)(0)= "" Then
  ub = ub - 1
 End If
 For i = 0 To ub
  tmp(i)=doc.GetItemValue(itemName)(i)
 Next
 i = ub +1
 tmp(i) = strContent
 Set NIT = doc.ReplaceItemValue( itemName, Fulltrim(tmp) )
 AddString = Fulltrim(tmp)
End Function

2016年6月28日 星期二

[Oracle Query] 日期格式用法

CASE 
           WHEN TO_CHAR(WDJ.DATE_RELEASED, 'DD') BETWEEN '01' AND '10' THEN '上'
           WHEN TO_CHAR(WDJ.DATE_RELEASED, 'DD') BETWEEN '11' AND '20' THEN '中'
           ELSE '下'
END AS "MONTH",

WDJ.DATE_RELEASED +1 AS "ADD A DAY", --當下日期+1

TRUNC(WDJ.DATE_RELEASED) AS "TRUNC", --把時分秒拿掉

TO_DATE(WDJ.DATE_RELEASED) AS "TO_DATE", --取當下日期

EXTRACT(YEAR FROM WDJ.DATE_RELEASED) AS "EXTRACT", --取年

LAST_DAY(WDJ.DATE_RELEASED) AS "LAST_DAY", --當月最後一天

ADD_MONTHS(WDJ.DATE_RELEASED,1) AS "NEXT MONTH",  --下個月

LAST_DAY(ADD_MONTHS(WDJ.DATE_RELEASED, -1)) AS "END OF LAST MONTH",  --找出前一個月的最後一天

[ERP] ERP文件的常用寫法

//ERP文件的常用寫法
(R)Work in Process → (N)Discrete → (N)Discrete Jobs → (B) Components
//彈性欄位DFF

(R) Responsibility
(N) Navigator
(B) Button
(Tab) 頁籤
(DFF) [...]彈性欄位

2016年6月16日 星期四

[oracle erp] INV exam

題目一:
  1. 請依第一頁結構圖利用套用 Template 的方式建立料號 ITEM-A, ITEM-B, ITEM-C, ITEM-D, ITEM-E, ITEM-F, ITEM-G assign to TYO Org,並使用SQL語法抓取 TYO Org料號資料,需有以下欄位: Organization_Id, Organization_Code, Inventory_item_id, Item, Item_Description, Primary_UOM, Item_Type, Item_Status, Make_or_Buy, Supply_Type, Include_in_Rollup (25%)
  • 作答方式: 請將 SQL 語法及 SQL結果貼上。
select
mtl.inventory_item_id as Inventory_item_id,
mtl.segment1 as item,
mtl.description as item_Description,
mtl.primary_unit_of_measure as Primary_UOM,
mtl.item_type as Item_Type,
mtl.inventory_item_status_code as Item_Status,
msi.PLANNING_MAKE_BUY_CODE as Make_or_Buy,
msi.WIP_SUPPLY_TYPE as SUPPLY_TYPE,
msi.DEFAULT_INCLUDE_IN_ROLLUP_FLAG as Include_in_Rollup
from MTL_SYSTEM_ITEMS_B MTL, fnd_user MAN, MTL_SYSTEM_ITEMS_FVL MSI
where MTL.created_by = MAN.user_id
and MAN.user_name = 'Y16019'
and mtl.inventory_item_id = msi.INVENTORY_ITEM_ID


題目二:請於TYO Org建立以下資訊:(25%)
  1. 建立倉別 SUB-A 儲位 SUB-A-1
  2. 設定料號單位轉換 ITEM-D 100pcs=1box
  3. 於倉別 SUB-A 儲位 SUB-A-1雜收 ITEM-A, ITEM-B, ITEM-C, ITEM-D, ITEM-E, ITEM-F, ITEM-G 1000
  4. 於倉別 SUB-A 儲位 SUB-A-1 ITEM-D 轉倉至 TYO-MR1 儲位A101 1box,請使用 box 為交易單位
  • 作答方式: 請將料號 ITEM-D Material Transaction Onhand Quantity 畫面貼上。

題目三:
請使用SQL語法,抓取第2題的在 SUB-A倉所有料號彙總庫存,需有以下欄位: Organization_Code, Item, Item_Description, Item_Revision, Subinventory, Locator, Onhand_Qty (25%)
  • 作答方式: 請將 SQL 語法貼上
select Organization_Code,
Item,
Item_Description,
Revision,
Subinventory_code,
Locator,
On_hand
FROM MTL_ONHAND_TOTAL_MWB_V
WHERE 1=1
AND locator_id = '17274'
AND subinventory_code = 'SUB-A2-19'
AND organization_id = '96'

題目四:
請使用 SQL 語法,抓取第2題所發生的交易,以及各交易對應的Account Distributions。需有以下欄位: Organization_code, Item, Revision, Subinventory, Locator, Transfer_Org, Transfer_Subinventory, Transfer_Locator, Primary_Qty, Transaction_Date, Transaction_Type (25%)
  • 作答方式: 請將 SQL 語法及結果貼上

SELECT MTRA.ORGANIZATION_ID,
MTRA.REVISION,
mtl.segment1,
MTRA.SUBINVENTORY_CODE,
MTRA.LOCATOR_ID,
MTRA.TRANSFER_ORGANIZATION_ID,
MTRA.TRANSFER_SUBINVENTORY,
MTRA.TRANSFER_LOCATOR_ID,
MTRA.PRIMARY_QUANTITY,
MTRA.TRANSACTION_DATE,
MTRA.TRANSACTION_TYPE_ID
FROM MTL_MATERIAL_TRANSACTIONS MTRA, MTL_SYSTEM_ITEMS_B MTL, fnd_user MAN
WHERE MTRA.TRANSACTION_ACTION_ID NOT IN (24,30) and (( MTRA.ORGANIZATION_ID = 96 )
and ( MTRA.transaction_date between to_date('15-06-2016 00:00:00','DD-MM-YYYY HH24:MI:SS') AND to_date('16-06-2016 23:59:59','DD-MM-YYYY HH24:MI:SS') )
and (MTRA.LOGICAL_TRANSACTION=2 OR MTRA.LOGICAL_TRANSACTION IS NULL ))
and MTL.inventory_item_id = MTRA.Inventory_Item_Id
and MTL.created_by = MAN.user_id
and MAN.user_name = 'Y16019'
order by MTRA.TRANSACTION_DATE DESC, MTRA.TRANSACTION_ID DESC, MTRA.SUBINVENTORY_CODE DESC