2015-11-02 46 views
0

我有一個工作流程,它將VB記錄中的審批狀態默認爲「拒絕」,如果採購訂單不符合VBAt。編輯供應商Bill-Netsuite上的審批狀態字段

現在我只允許一個特定的角色編輯審批狀態並將其保存到任何他想要的,我如何實現這一目標?我正在使用nlapisubmit設置狀態。

回答

0

你爲什麼不在你的記錄上寫一個用戶事件並檢查用戶的角色。一個可能的解決方案可能是禁用其他角色的字段。 基本上你可以做這樣的事情

負載:

function clientPageInit(type){ 
    if(nlapiGetRole() != 'your_desird_roleId') // check for the role 
    nlapiSetFieldDisabled('yourstaus_field_internalid',true); // disable the field edit for other roles 
} 

否則,你可以在現場變化拋出一個錯誤,如果角色不符合您需要的角色相匹配。

在現場變更:

function clientFieldChanged(type, name, linenum){ 

    if(name == 'yourstaus_field_internalid' && nlapiGetRole() == 'your_desird_roleId'){ 
    // allow to edit the status 
    }else{ 
    throw nlapiCreateError('INVALID_ACCESS','You don't have access to change this field.'; 
    } 
} 
+0

感謝此工作 – Winona

0

我建議取消對其他角色beforeload用戶事件腳本從表單中的字段,你可以訪問nlobjForm

//goes into before load function , additional condition, in case field is not there on the form, 
if(nlapiGetRole() !== 'SPECIFIC_ROLE_ID' && form.getField('approvalstatus')) 
    form.getField('approvalstatus').setDisplayType('hidden'); 

這確保了場對於角色以外的所有用戶都是隱藏的。

此外,在提交之前的用戶事件腳本中,如果角色不是期望的或者拋出錯誤,則將狀態設置爲較舊的狀態,這將確保如果入口點是非UI,例如Script,CSV,Wenservices等,字段值保持不變

//before submit to stop user from updating all together 
if(nlapiGetRole !== 'SPECIFIC_ROLE_ID'){ 
    throw new nlapiCreateError('You are not authorised'); 
} 

//before submit reset it back to old field value without showing any error 
if(nlapiGetRole !== 'SPECIFIC_ROLE_ID'){ 
    nlapiSetFieldValue('approvalstatus, 'nlapiGetOldRecord().getFieldValue('approvalstatus')); 
} 
+0

感謝您的答覆。所以我的代碼設置這樣的狀態。 nlapiSubmitField('vendorbill',vendorBillID,'approvalstatus','3'); //獲取角色 \t \t \t \t var roleID = nlapiGetRole(); \t \t \t \t //作用是會計師 \t \t \t \t如果(角色ID = 25)最好應該設置任何他想。 – Winona

+0

'nlapiSubmitField('vendorbill',vendorBillID,'approvalstatus','3');''獲取角色var roleID = nlapiGetRole(); ''if(roleID = 25)'Role ID = 25是會計師,他應該自己設定任何他想要的狀態。 – Winona

+0

對,這就是爲什麼我建議如果(nlapiGetRole()!=='25'){form.getField('status')。setDisplayType('hidden');}在加載之前只允許會計師設置他/她想要的從UI設置 – prasun

0

不確定爲什麼第二部分是腳本。你已經提到你的第一部分是一個工作流程,這也可以在工作流程中完成。

只需使用set field display type - 禁用/隱藏在條件角色的記錄加載之前!=您想要允許的角色。

根據您的要求,這一個動作完成您的需求。與上述答案相同的前提,但不需要腳本