An error occurred while processing the template.
The following has evaluated to null or missing:
==> serviceContext.attributes["p_p_id"]  [in template "20154#20194#348039" at line 5, column 29]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign portletNamespace = serviceCon...  [in template "20154#20194#348039" at line 5, column 1]
----
1<#-- OU Brochure Bedank Pagina.ftl --> 
2<#-- VERSIE 21-10-2019 --> 
3 
4<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
5<#assign portletNamespace = serviceContext.attributes["p_p_id"]> 
6 
7<#assign downloadLink = serviceContext.attributes["_"+portletNamespace+"_dl"]> 
8<#assign opleidingNaam = serviceContext.attributes["_"+portletNamespace+"_on"]> 
9<#assign way = serviceContext.attributes["_"+portletNamespace+"_way"]> 
10<#assign geslacht = serviceContext.attributes["_"+portletNamespace+"_sx"]> 
11<#assign achternaam = serviceContext.attributes["_"+portletNamespace+"_ln"]> 
12 
13<#assign dlfileEntryLocalServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
14 
15<#if locale.toString() == "nl_NL"> 
16    <#assign beste = "Beste" /> 
17    <#assign heer = "heer" /> 
18    <#assign mevrouw = "mevrouw" /> 
19<#else> 
20    <#assign beste = "Dear" /> 
21    <#assign heer = "sir" /> 
22    <#assign mevrouw = "madam" /> 
23</#if> 
24 
25<#-- Sfeerbeeld --> 
26    <#if (Sfeerbeeld.getData())?has_content> 
27        <#assign picURL = Sfeerbeeld.getData() /> 
28        <#assign image_url = picURL?split("_head_large.")[0] + "_head_small.jpg" /> 
29 
30        <#assign altText = "" /> 
31        <#if picURL?has_content> 
32            <#assign uuid = ((picURL?split(".jpg/")[1])!"")?split("?")[0] /> 
33            <#if uuid?has_content && groupId != 0> 
34                <#assign dlfileEntry = dlfileEntryLocalServiceUtil.fetchDLFileEntryByUuidAndGroupId(uuid,getterUtil.getLong(groupId)) /> 
35                <#assign altText = dlfileEntry.getDescription() /> 
36                <#if altText == ""> 
37                    <#assign altText=dlfileEntry.getTitle() /> 
38                </#if> 
39            </#if> 
40        </#if> 
41 
42        <!-- START FULL IMAGE --> 
43        <section class="container-fluid section padding-top padding-bottom"> 
44            <div class="full-image full-image--smaller"> 
45                <div class="full-image__bg"> 
46                <img src="${image_url!}" alt="${altText!}" style="display:none" /> 
47                    <div class="full-image__bg__img" id="Article_${.vars['reserved-article-id'].data}" style="background: url('${image_url}') no-repeat center; background-size: cover;"></div> 
48                </div> 
49                <div class="full-image__content"> 
50                    <div class="layout__content-container"> 
51                        <div class="row"> 
52                            <div class="col-md-12"> 
53                                <div class="full-image__content__title">${.vars['reserved-article-title'].data}</div> 
54                                <div class="full-image__content__stripe ${Marketing_Kleur.getData()!}"></div> 
55                            </div> 
56                        </div> 
57                    </div> 
58                </div> 
59            </div> 
60        </section> 
61        <!-- END FULL IMAGE --> 
62    </#if> 
63 
64<!-- START SECTION - CONTENT --> 
65<section class="container-fluid section padding-top padding-bottom"> 
66    <div class="layout__content-container"> 
67        <div class="content"> 
68            <div class="row"> 
69                <div class="content__left col-xs-12 col-md-8"> 
70                    <#if !Sfeerbeeld?has_content> 
71                        <h1 class="content__page__title">${.vars['reserved-article-title'].data}</h1> 
72                        <div class="content__page__stripe ${Marketing_Kleur.getData()}"></div> 
73                    </#if> 
74 
75                    <p> 
76                        <#if geslacht=="V"> 
77                            ${beste} ${mevrouw} ${achternaam}, 
78                        <#elseif geslacht=="M"> 
79                            ${beste} ${heer} ${achternaam}, 
80                        <#else> 
81                            ${beste} ${heer}, ${mevrouw} ${achternaam}, 
82                        </#if> 
83                    </p> 
84 
85                    ${Begin_Tekst.getData()} 
86 
87                    <#if way == "POST"> 
88                        ${Tekst_Post.getData()} 
89                    <#else> 
90                        ${Tekst_Mail.getData()} 
91                    </#if> 
92 
93                    <a href="${downloadLink}" class="btn btn--left btn--primary" target="_blank">Download ${opleidingNaam}</a> 
94                    <br></br> 
95                    ${Afsluitende_Groet.getData()} 
96                </div> 
97                <div class="content__right pull-top col-xs-12 col-md-4"> 
98                    <#if Marketing_Boodschap?has_content> 
99                        <div class="${Marketing_Kleur.getData()}" style="padding: 30px;"> 
100                            ${Marketing_Boodschap.getData()} 
101                        </div> 
102                    </#if> 
103                </div> 
104            </div> 
105        </div> 
106    </div> 
107</section>