Tracing Nested References with Reporting
Scenario
Given three ServiceRocket Scaffolding templates that form a hierarchy of references (using List Data fields):
Customer
Orders (contains a List Data macro field, and the Key parameter is set toÂ
data:Customer
, referencing pages made with the Customer template)Shipment (contains a List Data macro field, and the Key parameter is set toÂ
data:Order
, referencing pages made with the Orders template)
This recipe is an example of how to report all shipments associated with a customer.
Result
N/A
Recipe
Apps | Reporting for Confluence Server & Data Center, Scaffolding |
---|---|
Level | Advanced |
Estimated time | 30 minutes |
Macros | Local Reporter, Report Block, Report Body, Report Info, Report List, Text Filter |
Suppliers | Page Supplier, Report Supplier, Text Supplier |
Storage format
You can copy and paste this code into the Confluence Source Editor:
<ac:structured-macro ac:macro-id="0d583032-21d0-4641-954b-e7863bde69ca" ac:name="report-block" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<p class="auto-cursor-target">
<br />
</p>
<ac:structured-macro ac:macro-id="fccb981d-8d91-4822-8c4c-f9a2ddf5d4c5" ac:name="local-reporter" ac:schema-version="1">
<ac:parameter ac:name="source">Orders</ac:parameter>
<ac:parameter ac:name="">page:children</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="fc5a94a0-b1a1-40ab-bb34-8dba261adeaf" ac:name="text-filter" ac:schema-version="1">
<ac:parameter ac:name="include">MyCustomerName</ac:parameter>
<ac:parameter ac:name="">data:Customer</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br />
</p>
<ac:structured-macro ac:macro-id="b34a9646-f2f4-4794-a8ba-a3f7f6a749f4" ac:name="report-body" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:rich-text-body>
<p class="auto-cursor-target">
<br />
</p>
<ac:structured-macro ac:macro-id="d28f2816-2d85-491a-95d8-dc1c3dd0273e" ac:name="report-list" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:rich-text-body>
<p class="auto-cursor-target">
<br />
</p>
<ac:structured-macro ac:macro-id="81d48de4-2422-4f34-b209-521aecc7b02f" ac:name="local-reporter" ac:schema-version="1">
<ac:parameter ac:name="source">Shipments</ac:parameter>
<ac:parameter ac:name="">page:children</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="fb2619d0-b5f8-491b-b623-fc3fa5ef6ff1" ac:name="text-filter" ac:schema-version="1">
<ac:parameter ac:name="include">%page:title%</ac:parameter>
<ac:parameter ac:name="">data:Order</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br />
</p>
<ac:structured-macro ac:macro-id="e2eeb4ca-df19-4b32-a2e9-eaedaeeceeb5" ac:name="report-body" ac:schema-version="1">
<ac:rich-text-body>
<p class="auto-cursor-target">
<br />
</p>
<ac:structured-macro ac:macro-id="7f6cc26c-113c-484c-a686-8bbd208538a1" ac:name="report-list" ac:schema-version="1">
<ac:rich-text-body>
<p>
<br />
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br />
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br />
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<ac:structured-macro ac:macro-id="b4c719b7-278a-40fb-9dec-e00c2bfec6ce" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">page:title</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br />
</p>
<p class="auto-cursor-target">
<br />
</p>
</ac:rich-text-body>
</ac:structured-macro>
Macro structure
You can recreate the example in the editor view:
Steps
Create a Report Block macro. This macro will contain all macros we will create.
Create a Local Reporter macro. Set the following parameters:
Key:Âpage:children
Source:Â "Orders"Create a Text Filter macro within the Local Reporter we created in the previous step. Set the following parameters as stated:
Key:Âdata:Customer
Include: "MyCustomerName"Within the Report Block macro, but outside the Local Reporter macro, create a Report Body macro and check the Injected parameter to set it to True.
Within the Report Body macro, create a Report List macro, and check the Injected parameter to set it to True.
Within the Report Body macro, create another Local Reporter macro. Set the following parameters as stated:Â
Key:Âpage:children
Source:Â "Shipments"Within the Local Reporter macro created in the previous step, create a Text Filter macro. Set the following parameters as stated:
Key:Âdata:Order
Include:Â%page:title%
Outside the Local Reporter macro (created in step 7), create another Report Body macro.
Within the Report Body macro, create Report Info macro and set the Key to
page:title
.Outside the Report Body macro (created in step 6), create a Report List macro.Â