-1

解释捆绑类型,如当前捆绑新捆绑。我们何时使用以及它将如何对我的交易产生影响。请举例说明。

4

2 回答 2

1

注意:不要在生产环境下运行 Gosu Script

“当前”包是包含可用于当前代码上下文的对象的包。这包括但不限于用户界面和插件。这些捆绑包由 Guidewire 应用程序自动创建,以创建、修改或编辑数据。集成开发人员可以引用当前包中的实体。他们也可以提交当前的捆绑包,尽管在某些情况下这是不可取的。

var bundleVar = gw.transaction.Transaction.getCurrent()
bundle.Commit()

只读包是包含从数据库检索的实体的包。这包括作为查询结果返回的实体,以及当相关实体位于只读包中时相关实体的外键引用的实体。只读包中的实体无法修改。但是,您可以将实体从只读包复制到可写包中。

示例:查询

在此处输入图像描述

新捆绑包是由集成代码显式创建的捆绑包。与只读包不同,您可以在新包中修改和提交数据。与当前捆绑包不同,您可以提交新捆绑包,而不必担心捆绑包中发生以后的交互。

•创建一个新包(未指定用户):

gw.transaction.Transaction.runWithNewBundle(\ newBundle -> {
  CodeBlock } )

示例:更新 Vin 编号

//Getting the peopicy period by Job number
var period=Job.finder.findJobByJobNumber("12345").LatestPeriod
gw.transaction.Transaction.runWithNewBundle(\ newBundle -> {
  //Adding present object to the bundle
  
  newBundle.add(period)
  period.PersonalAutoLine.Vehicles.each(\ veh -> {
       print("before script ="+veh.Vin)
       veh.Vin="12345678"
       print("After script ="+veh.Vin)
  }
  } )

• • 创建一个新的捆绑包(作为指定的用户):

gw.transaction.Transaction.runWithNewBundle(\ newBundle -> {
  CodeBlock } , user )

示例:按用户-超级用户更新 Vin 编号

gw.transaction.Transaction.runWithNewBundle(\ newBundle -> {
  //Adding present object to the bundle
  period.PersonalAutoLine.Vehicles.each(\ veh -> {
       veh.Vin="12345678"
  }
  } , "su")

• runWithNewBundle() 方法固有地在方法末尾提交包

于 2020-08-13T05:18:04.610 回答
0

Bundles主要有3种类型。

  1. 当前捆绑包(示例:如果在 Guidewire UI 中发起交易,则 Guidewire 将自动创建当前捆绑包)

  2. 只读包(例如:如果您从数据库中选择任何结果,那么使用 Gosu 查询获取的结果将在只读包中可用。要使其可写包,然后将结果添加到新包)

  3. 新捆绑包(示例:此捆绑包用于提交数据或实体,当您使用批处理时,Webservice Guidewire 不会创建任何捆绑包,开发人员必须创建一个新捆绑包(使用新捆绑包运行)来提交数据到数据库)

于 2020-08-08T08:38:44.383 回答