0

我需要在 Workfront 中显示一些与任务相关的外部数据。我可以创建一个仪表板,显示来自私有本地服务器的静态“外部页面”。我需要在该 URL 中传递一个参数,其中包含有关当前任务的一些信息,以便我可以从与该任务相关的本地 ERP 数据库中获得响应(我的 ERP 系统中的一个字段用于关联报价/订单/ Workfront 任务的发票)。例如,我必须定义一个类似于http://my.intranet/report?ref= $$REFNUM ... 的 URL,并且 $$REFNUM 令牌将被替换为任务的参考号,其中仪表板位于。我的服务器会看到一个类似于http://my.intranet/report?ref=12345的请求,并返回与参考编号为 12345 的任务相关的信息。

我有两位顾问提出的建议,认为这是可能的,但我找不到解释如何在外部页面 URL 中传递动态信息的文档。有什么建议么?

更新:通过一些额外的黑客攻击,我发现我可以使用以下语法返回会话 ID:

some.url/query?session={!$$SESSION}

我可以使用以下语法获取用户 ID:

some.url/query?userid={!$$USER.ID}

我还没有成功获得与任务相关的详细信息。{!$$TASK.ID} 返回 null,无论是从仪表板创建页面调用,还是从嵌入在任务布局中的选项卡调用。

是否有任何其他秘密通配符变量以及如何使用它们?

4

2 回答 2

0

找到解决方案。以下语法将导致 Workfront 返回调用它的对象的会话和 ID:

some.url/query?session={!$$SESSION}&object={!ID}

这些对象可以在 API 调用中用于获取与对象相关的其他信息,例如 referenceNumber。归功于 AtAppStore 的这个页面,这是我找到语法的地方。 http://store.atappstore.com/index.php/executive-summary/

于 2015-03-04T01:14:34.523 回答
0

我知道这是一个老问题,

与此同时,Adobe 收购了 Workfront,我们公司开始使用它。

我在网上花了几天时间试图找到解决同样问题的方法。

最后,这就是我想出的:(这些专注于在 WF TASK 对象视图上呈现值,其他对象会给出不同的结果或没有结果)

还回答了同样的问题:https ://one.workfront.com/s/question/0D54X00006pnbPvSAI/how-tp-pass-wildcards-as-url-parameter-to-external-pages

taskID={!ID}
taskURL={!URL}
taskDuration={!Duration}
taskName={!Name}
taskDescription={!Description} - (breaks if it includes HTML)
taskStatus={!Status}
taskPriority={!Priority}
taskProgressStatus={!Progress Status}
taskPercentComplete={!Percent Complete}
taskPlannedHours={!Planned Hours}
taskProjectedCompletionDate={!Projected Completion Date}
taskRefNumber={!Reference Number}
taskNumber={!Task Number}
taskHasDocuments={!Has Documents}
projectName={!Project} OR {!Project.Name}
projectID={!Project ID} OR {!Project.ID} - (In PROJ object one gives a value but other one renders null)
assignedToID={!Assigned To.ID}
assignedToName={!Assigned To.Name}
assignedToFirstName={!Assigned To.FirstName}
assignedToLastName={!Assigned To.LastName}
assignedToEmail={!Assigned To.Email Address}
assignedToUsername={!Assigned To.Username}
sessionID={!$$SESSION}
userID={!$$USER.ID}
userName={!$$USER.Name}
userFirstName={!$$USER.First Name}
userLastName={!$$USER.Last Name}
userEmail={!$$USER.Email Address}
userUsername={!$$USER.Username}
userRoleID={!$$USER.Role ID}
enteredByID={!Entered By ID}
hasMessages={!Has Messages}
hasNotes={!Has Notes}
hasReminderNotifications={!Has Reminder Notifications}
iterationID={!Iteration ID}
lastConditionNoteID={!Last Condition Note ID}
lastNoteID={!Last Note ID}
numberOfChildren={!Number of Children}
securityRootObjCode={!securityRootObjCode}
securityRootID={!securityRootID}
submittedByID={!Submitted By ID}
version={!Version}
trackingMode={!Tracking Mode}
lastNote={!Last Note}
parent={!Parent}
objID={!ObjID} - (Will give some ID on Dashboard view)

There are a few more like {!Planned Cost}, {!Revenue Type} etc.

我想在 iframe src 调用中获取当前 WF 对象的 objectType 或 objCode,这样我就可以在目标页面上放置 1 到 2 个 API 查询。事实证明你不能那样做。但我可以获得securityRootObjCode。这让我可以做到:

如果当前 WF 对象是 TASK,则 {!securityRootObjCode} 将呈现 PROJ,{!Project} 不会为 null,{!Project ID} 不会为 null

如果当前 WF 对象是 PROJ,则 {!securityRootObjCode} 将呈现 null,{!Project} 将为 null,{!Project ID} 将不为 null

如果当前 WF 对象是 Dashboard,则所有值都将为空。

于 2021-09-15T15:21:08.397 回答