最近差点就GET到一项新技能,,,,,, 没错,是 "​差点"

近日一直在各种测试Primavera P6与Primavera Unifier数据的打通,讲实在的,其实这可以开发者自己通过P6 和Unifier WebService 来打通,但好就好在Oracle 有一套非常适用于两者(其实还可以同于prime,sap,ebs)的数据交换工具:Gateway,所以其数据交换的工作就变成Gateway配置来做了,

P6PU#1,关于Primavera P6和Unifier同步WBS数据异常_Gateway

好吧,回到重心,​这次要说的其实是在交换WBS时遇到的异常​,先简单介绍下环境:


P6:Primavera P6 EPPM 18.8.9.0 (更新2019-07 最新patch)

Unifier:Primavera Unifier 18.8.9.0 (更新2019-06 最新patch)

Gateway:Primavera Gateway 18.8.0 (不更新补丁,最新的18.8.5.0及18.8.6.0 均无法实现 gatewayapi)


问题介绍:( 已发至官方 Community:  https://community.oracle.com/thread/4275805 ,后续有新消息再更新) 。

其实在传递WBS/CBS前,其Acitivity已经成功打通,P6的计划更新已经可以传递到unifier的 acitivity上来了,但目前主要的是wbs,考虑到p6pu传递的逻辑还是基于业务对象着步实现,在gateway的项目数据流汇总中也是分开配置的。

如下图gateway中 的 acitivity,cbs,project,wbs 

P6PU#1,关于Primavera P6和Unifier同步WBS数据异常_oracle_02

P6PU#1,关于Primavera P6和Unifier同步WBS数据异常_Primavera_03

那么问题来了,前面的acitivity已经实现没问题的了,那么wbs 不也是一样勾选吗 ?NEXT

P6PU#1,关于Primavera P6和Unifier同步WBS数据异常_Gateway_04

gateway中,p6的 wbs 是在unifier 中会形成 cbs ?(同步模式可以是create,update,both)

(貌似无疑,可以国外的一篇文章:https://proventuresindia.com/blog/primavera-p6-and-unifier-synchronization-v17/ )

执行同步,Unifier Request 的WBS均为P6创建的,没差了,gateway已经成功获取,NEXT

P6PU#1,关于Primavera P6和Unifier同步WBS数据异常_Gateway_05

BUT,最终更新到Unifier时还是出现了 error 707 , 这问题似乎没有在knowledge和community提到,难道我哪里有遗漏的

BUT,反复测试,问题依旧。

P6PU#1,关于Primavera P6和Unifier同步WBS数据异常_P6_06

在来一段 error detail , 提示的是provider的异常,不过,不过,怎么可能呢,毕竟activity已经实现了 ....

com.oracle.pgbu.pdi.provider.ProviderException: Unifier return code is 707. [null]

at com.oracle.pgbu.pdi.unifierprovider.project.UnifierProjectSaveStep.save(UnifierProjectSaveStep.java:277)

at com.oracle.pgbu.pdi.service.jobs.JobSimulator.executeSaveStep(JobSimulator.java:934)

at com.oracle.pgbu.pdi.service.jobs.JobSimulator.executeSingleFlow(JobSimulator.java:495)

at com.oracle.pgbu.pdi.service.jobs.JobSimulator.execute(JobSimulator.java:394)

at com.oracle.pgbu.pdi.service.jobs.JobSimulator.run(JobSimulator.java:208)

at com.oracle.pgbu.framework.akka.jobs.ServiceExecutorWrapperActor.wrappedReceive(ServiceExecutorWrapperActor.java:36)

at com.oracle.pgbu.framework.akka.metrics.UntypedActorWithMetrics.processMessage(UntypedActorWithMetrics.java:39)

at com.oracle.pgbu.framework.akka.metrics.UntypedActorWithMetrics.onReceive(UntypedActorWithMetrics.java:33)

at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)

at akka.actor.Actor$class.aroundReceive(Actor.scala:497)

at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)

at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)

at akka.actor.ActorCell.invoke(ActorCell.scala:495)

at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)

at akka.dispatch.Mailbox.run(Mailbox.scala:224)

at akka.dispatch.Mailbox.exec(Mailbox.scala:234)

at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)

at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)

at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)

at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

附上官方配置指引(Version 17.x 但不影响操作)

https://docs.oracle.com/cd/E80548_01/English/User_Guides/unifier_setup/gateway_unifier_setup.pdf

目前还在折腾,欢迎大家一起探讨 。