返回列表 发帖

[KB功能解说] 如何借助类管理签名?

适用产品版本
Sage X3 V7


模块
管理


问题概要
“我要如何向类添加签名管理,才能让用户可以在我们的开发项中签署记录?”


详细信息
解决方法


管理类的V6工作流:

V6中的工作量引擎是基于像“V6对象”(通过功能GESAOB描述)这样的V6开发模型的。

在V7和之后升级的版本中,有一种新的开发类型在对象模式中用类和表示法。V6工作流引擎不处理与类或表示法有关的事件。关于这点,在未来的升级版本中可能会有一个新的工作流引擎。目前,可以自与类关联的V7代码通过专用APIs(应用程序界面)触发一个工作流事件

这些API是在ASYRWRKCLASSIC库中的。它们的执行基于批次任务。这意味着用这些API自与类关联的代码触发执行一个V6工作流事件的话,就会创建一个批次任务请求。批次服务器会运行V6代码来处理该工作流。

对应的批次任务名为AWRKCLA。

以这种方式调用的工作流事件存在某些限制:
•        只能管理3种事件类型:其他的、对象的和手动的。
•        在一个自类调用的修改工作流中,不可能在[F]类中访问之前的值,也不能在[M]类中修改值。你唯一可用的实体只有修改的那条记录。


调用一个工作流事件

该功能在ASYRWRKCLASSIC库中。其定义如下:
Funprog WORKFLOW(ACTX,TYPEVT,CODEVT,OPERAT,CLEOBJ,REQUEST,MESSAGE)
Variable Instance ACTX Using =[V]CST_C_NAME_CLASS_CONTEXT : # Context where the errors messages are stored
Value Integer TYPEVT : # Workflow type event (local menu #988) : only 1,2,10 are possible
Value Char CODEVT : # Event code
Value Char OPERAT : # Operation (operation codes C=creation, M=modification, or a "button" code)
Value Char CLEOBJ : # Object key for object event
Variable Integer REQUEST : # Returns the ID for the batch request created
Variable Char MESSAGE : # Message returned by the workflow post


这个功能必须以与类或表示法相关的脚本调用才能执行工作流的调用。

例如,对于TABCOUNTRY类,如果你想要调用基于对象TCY(存储国家的V6对象)修改的所有工作流事件,那么在TABCOUNTRY_CSTD脚本中的'AUPDATE_AFTER'事件上,你就可以添加以下代码:
$AUPDATE_AFTER
Local Integer REQNUM,TYPEVT,STAT
Local Char CODEVT(30)
Local Char OPERAT(30)
Local Char MSG(250),CLEOBJ(250)

TYPEVT=2 : # Object based event
CODEVT="TCY" : # The object is TCY
OPERAT="M" : # Modification
CLEOBJ=this.CRY : # Current key
STAT = func ASYRWRKCLASSIC.WORKFLOW(this.ACTX,TYPEVT,CODEVT,OPERAT,CLEOBJ,REQNUM,MSG)

Return


如果,对于TABCOUNTRY类,如果你想要调用基于对象TCY(存储国家的V6对象)创建的所有工作流事件,那么在TABCOUNTRY_CSTD脚本中的'AINSERT_AFTER'事件上,你就可以添加以下代码:

$AINSERT_AFTER
Local Integer REQNUM,TYPEVT,STAT
Local Char CODEVT(30)
Local Char OPERAT(30)
Local Char MSG(250),CLEOBJ(250)

TYPEVT=2 : # Object based event
CODEVT="TCY" : # The object is TCY
OPERAT="C" : # Creation
CLEOBJ=this.CRY : # Current key
STAT = func ASYRWRKCLASSIC.WORKFLOW(this.ACTX,TYPEVT,CODEVT,OPERAT,CLEOBJ,REQNUM,MSG)

Return


调用一个手动工作流事件

该功能在ASYRWRKCLASSIC库中。手动工作流的调用是简化的,所以要发送的参数少一些:
Funprog WORKMANUAL(ACTX,CODE,FILTER,SIMUL,REQUEST,MESSAGE)
Variable Instance ACTX Using =[V]CST_C_NAME_CLASS_CONTEXT : # Context where the errors messages are stored
Value Char CODE : # Event code
Value Char FILTER : # Filter
Variable Integer REQUEST : # Returns the ID of the batch request created
Variable Char MESSAGE : # Message returned by the workflow post


扩展工作流事件的调用

该功能在ASYRWRKCLASSIC库中。这种调用有附加参数,而且仅出于兼容性原因提供。有些参数没有。

返回列表