Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) [in template "252001#252047#252845" at line 128, column 37]
----
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: dMTJsonObject = FrontendService.media... [in template "252001#252047#252845" at line 128, column 21]
----
1<#-- used @ Veranstaltung-Detailseite Intro 
2 used @ Publikation-Detailseite Intro 
3--> 
4 
5<#-- 
6Web content templates to display teaser on thema detail page 
7 
8Generic template for detail pages Intro / Teaser element 
9--> 
10<#-- 
11Display the current page title 
12--> 
13<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" /> 
14<#include "${fullTemplatesPath}/macros/debugging.ftl" /> 
15 
16<#include "${fullTemplatesPath}/macros/page-modules/PMIntro.ftl" /> 
17<#include "${fullTemplatesPath}/macros/atomic-modules/AMPublicationCarousel.ftl" /> 
18<#include "${fullTemplatesPath}/macros/atomic-modules/AMMetadata.ftl" /> 
19<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" /> 
20 
21 
22<#-- 
23 renders the Intro for nearly all Pages 
24 TODO: remove Share? (was in the designs, but not anymore?) 
25 TODO: check if languageSelect/filter are working (js) 
26 
27 - portletId 
28 - data = { 
29 "media": string (src from image), 
30 "category": string, 
31 "title": string, 
32 "author": string, 
33 "subheadline": string, 
34 "copy": string, 
35 "filter": { 
36 "id": string, 
37 "name": string, 
38 "entries": Array<Object> ({key:value}), 
39 }, 
40 "languageSelect": { 
41 "id": string, 
42 "name": string, 
43 "entries": Array<Object> ({key:value}), 
44 }, 
45 "meta": { 
46 "pos"; string (top/bottom) 
47 "date": string, 
48 "hash": string, 
49 "info": string, (url) 
50 }, 
51 "share" : { 
52 "login": string, 
53 "print": string, 
54 "mail": string, 
55 "multishare": string?? (tbd) 
56
57 - AMMetadata: macro 
58 - position: String ("top") -> defines wether the meta-data should be rendered above or below the intro-content 
59
60--> 
61 
62<#assign 
63 JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
64 
65 ServiceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() 
66 DLAPP = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService") 
67 
68 themeDisplay = ServiceContext.getThemeDisplay() 
69 editmode = FrontendService.user.isPrivilegedUser(themeDisplay) 
70 
71 languageId = themeDisplay.getLocale() 
72 groupId = themeDisplay.getScopeGroupId() 
73 currentUrl = themeDisplay.getURLCurrent() 
74 
75 layout = themeDisplay.getLayout() 
76 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id") 
77/> 
78 
79<#setting locale="${languageId}"> 
80 
81<#-- get article from url --> 
82 
83<#assign entry = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)! > 
84 
85 
86<#if entry?has_content> 
87 
88 <#if entry.resourcePrimKey??> 
89 <#assign primaryKey = entry.resourcePrimKey?number > 
90 <#elseif entry.classPK??> 
91 <#assign primaryKey = entry.classPK?number > 
92 </#if> 
93 
94 <#assign 
95 jsonString = FrontendService.article.getWebcontent(primaryKey) 
96 json = FrontendService.json.parseAsJson(jsonString) 
97 availablelanguages = FrontendService.article.getAssetEntryToUrl(primaryKey).getAvailableLanguageIds() 
98 
99 title = entry.getTitle(languageId) 
100 data = { 
101 "title": title 
102
103 /> 
104 <@debugJsonString jsonString "ADT_KASDE_DYNAMIC_INTRO" /> 
105 
106 <#if hasContent('untertitel', languageId, json)> 
107 <#assign data = data + { "subheadline": getValueForLanguage('untertitel', languageId, json, "first") } > 
108 </#if> 
109 
110 <#if hasContent('beschreibung', languageId, json)> 
111 <#assign data = data + { "copy": getValueForLanguage('beschreibung', languageId, json, "first") } > 
112 </#if> 
113 
114 <#-- fill meta data --> 
115 <#assign meta = {} /> 
116 
117 <#-- PUBLIKATIONEN DETAIL --> 
118 <#if layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")> 
119 
120 <#if hasContent('coverDMTKASDEMEDIUM', languageId, json)> 
121 <#assign 
122 coverBildString = getValueForLanguage('coverDMTKASDEMEDIUM', languageId, json, "first") 
123 /> 
124 
125 <#if coverBildString?has_content> 
126 <#assign 
127 coverBild = FrontendService.json.parseAsJson(coverBildString) 
128 dMTJsonObject = FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) 
129 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',coverBild.groupId?number, coverBild.uuid ) 
130 data = data + { "media": linkToDMT, "meta" : dMTJsonObject } 
131 /> 
132 <#if dMTJsonObject.altText?? > 
133 <#assign data = data + {"alt" : dMTJsonObject.altText} /> 
134 </#if> 
135 <#if dMTJsonObject.quelle??> 
136 <#assign meta = meta + { "quelle": dMTJsonObject.quelle } /> 
137 </#if> 
138 </#if> 
139 <#-- uncomment to display pdf cover as Intro Image 
140 <#elseif hasContent('document_pdfDMTBASICDOCUMENT', languageId, json)> 
141 <#assign 
142 pdfDocument = getValueForLanguage('document_pdfDMTBASICDOCUMENT', languageId, json, "first") 
143 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, groupId?number)!/> 
144 <#if fileEntry?has_content> 
145 <#assign 
146 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay) 
147 data = data + { "media": linkToThumbnail } 
148 /> 
149 </#if> 
150 --> 
151 </#if> 
152 
153 <#assign 
154 meta = meta + { "orderInfo": "true" } 
155 verbundJournalArticle = FrontendService.publication.getVerbundToPublikation( entry )!"" 
156 /> 
157 
158 
159 
160 <#if hasContent('erscheinungsdatum', languageId, json)> 
161 <#assign 
162 erscheinungsdatum = getValueForLanguage('erscheinungsdatum', languageId, json, "first") 
163 /> 
164 <#if erscheinungsdatum?has_content > 
165 <#assign 
166 erscheinungsdatumFormatted = FrontendService.date.getDateFormatLong( erscheinungsdatum, languageId ) 
167 meta = meta + { "date": erscheinungsdatumFormatted } 
168 /> 
169 </#if> 
170 </#if> 
171 
172 <#if verbundJournalArticle?has_content> 
173 <#assign 
174 verbundJsonString = FrontendService.article.getWebcontent(verbundJournalArticle.resourcePrimKey) 
175 verbundJson = FrontendService.json.parseAsJson(verbundJsonString) 
176 laufendenummer = getValueForLanguage('laufendenummer', languageId, verbundJson, "first") 
177 coverImg = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, verbundJson, "first") 
178 /> 
179 <@debugJsonString verbundJsonString "ADT_KASDE_DYNAMIC_INTRO-verbundJournalArticle" /> 
180 <#assign meta = meta + { "laufendenummer": laufendenummer } > 
181 
182 <#if coverImg?has_content && coverImg.url?has_content > 
183 <#assign meta = meta + { "coverImg": coverImg.url } > 
184 </#if> 
185 </#if> 
186 
187 
188 <#if meta?has_content> 
189 <#assign data = data + {"meta": meta } > 
190 </#if> 
191 
192 </#if> 
193 <#-- PUBLIKATIONEN DETAIL END --> 
194 
195 
196 <#-- VERANSTALTUNGEN DETAIL --> 
197 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")> 
198 <#assign 
199 friendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, languageId, groupId)!"" 
200 links = [] 
201 /> 
202 <#if availablelanguages?has_content && friendlyUrl?has_content> 
203 <#if (availablelanguages?size > 1) > 
204 <#list availablelanguages as language> 
205 <#assign 
206 defaultLanguage = "de_DE" 
207 defaultLocale = FrontendService.language.getLocaleByKey(defaultLanguage) 
208 linkLocale = (FrontendService.language.getLocaleByKey(language))!defaultLocale 
209 langFriendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, linkLocale, groupId) 
210 
211 link = { 
212 "key": language!defaultLanguage, 
213 "value": linkLocale.getDisplayLanguage(languageId), 
214 "url": "/c/portal/update_language?p_l_id=" + 
215 layout.plid + "&redirect=" + langFriendlyUrl + 
216 "&languageId=" + language 
217
218 /> 
219 <#if language == languageId> 
220 <#assign link = link + { "selected": "true" } > 
221 </#if> 
222 <#assign links = links + [link]> 
223 </#list> 
224 <#assign 
225 data = data + { 
226 "languageSelect": { 
227 "id": "languageSelectRedirect", 
228 "name": "languageselectRedirect", 
229 "entries": links, 
230 "label": languageUtil.get(languageId, "diese.veranstaltung.ist.in.weiteren.sprachen.verfuegbar") 
231
232
233 /> 
234 </#if> 
235 </#if> 
236 </#if> 
237 
238 <#if hasContent('erscheinungsdatum', languageId, json)> 
239 <#assign 
240 startdate = getValueForLanguage('erscheinungsdatum', languageId, json, "first") 
241 meta = meta + { "start": startdate?date.iso, "end": "" } 
242 /> 
243 </#if> 
244 
245 <#if hasContent('startdatum', languageId, json)> 
246 <#assign 
247 startdate = getValueForLanguage('startdatum', languageId, json, "first") 
248 meta = meta + { "start": startdate?date.iso, "end": "" } 
249 /> 
250 </#if> 
251 
252 <#if hasValue('einfuehrungText', locale, json)> 
253 <#assign data = data + { "einfuehrungText" : getValueForLanguage('einfuehrungText', locale, json, "first") } > 
254 <#elseif hasValue(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first")> 
255 <#assign data = data + { "einfuehrungText" : getValueForLanguage(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first") } > 
256 </#if> 
257 
258 <#if hasContent('endedatum', languageId, json)> 
259 <#assign 
260 enddate = getValueForLanguage('endedatum', languageId, json, "first") 
261 meta = meta + { "end": enddate?date.iso } 
262 /> 
263 </#if> 
264 
265 <#if hasContent('startzeit', languageId, json)> 
266 <#assign 
267 startzeit = getValueForLanguage('startzeit', languageId, json, "first") 
268 /> 
269 <#if startzeit?has_content > 
270 <#assign meta = meta + { "startzeit": startzeit } /> 
271 </#if> 
272 </#if> 
273 
274 <#if hasContent('endezeit', languageId, json)> 
275 <#assign 
276 endezeit = getValueForLanguage('endezeit', languageId, json, "first") 
277 meta = meta + { "endezeit": endezeit } 
278 /> 
279 </#if> 
280 
281 <#if hasContent('ortWCSKASDEORT', languageId, json)> 
282 <#assign 
283 ortWCSKASDEORT = FrontendService.json.parseAsJson(getValueForLanguage('ortWCSKASDEORT', languageId, json, "first")) 
284 ortWCSKASDEORTPrimaryKey = ortWCSKASDEORT.classPK?number 
285 ortWCSKASDEORTWebContent = FrontendService.article.getWebcontentByPk(ortWCSKASDEORTPrimaryKey)!"" 
286 /> 
287 <#if ortWCSKASDEORTWebContent?has_content > 
288 <#assign 
289 ortWCSKASDEORTTitle = ortWCSKASDEORTWebContent.getTitle(languageId)!"" 
290 /> 
291 <#if ortWCSKASDEORTTitle?has_content > 
292 <#assign 
293 meta = meta + { "ortWCSKASDEORT": ortWCSKASDEORTTitle } 
294 /> 
295 </#if> 
296 </#if> 
297 </#if> 
298 
299 
300 <#if hasContent('veranstaltungsnummer', languageId, json)> 
301 <#assign 
302 verauuid = getValueForLanguage('veranstaltungsnummer', languageId, json, "first") 
303 meta = meta + { "verauuid": verauuid } 
304 /> 
305 </#if> 
306 
307 
308 <#if (data.meta)?has_content > 
309 <#assign meta = data.meta /> 
310 </#if> 
311 
312 <#if !(data.media)?has_content && hasContent('mediumDMTKASDEMEDIUM', languageId, json)> 
313 <#assign 
314 medium = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, json, "first") 
315 mediaData = getRelatedMediaObject(medium, themeDisplay, languageId, FrontendService, "hd-resolution") 
316 /> 
317 <#assign data = data + { "media": mediaData.url , "meta" : mediaData.meta} > 
318 
319 
320 <#if mediaData.meta?? && mediaData.meta.quelle??> 
321 <#assign meta = meta + data.meta + { "quelle": mediaData.meta.quelle } /> 
322 </#if> 
323 </#if> 
324 
325 
326 <#if meta?has_content> 
327 <#assign data = data + {"meta": meta } > 
328 </#if> 
329 
330 <#-- END fill meta data --> 
331 
332 <#if hasContentForSequence('autorenWCSKASDEPERSON', languageId, json)> 
333 <#assign 
334 journalArticles = getValueForLanguageAnsprechpartner('autorenWCSKASDEPERSON', languageId, json) 
335 authors = [] 
336 /> 
337 <#list journalArticles as articleString> 
338 <#assign article = FrontendService.json.parseAsJson(articleString) /> 
339 <#if article?has_content && article?is_hash && article.classPK??> 
340 <#assign articleDereferenced = FrontendService.person.resolveContactInstanceToPerson(article, languageId)!"" /> 
341 <#if articleDereferenced?has_content > 
342 <#assign 
343 author = "" 
344 articlePrimaryKey = articleDereferenced.classPK?number 
345 articleJsonString = FrontendService.article.getWebcontent(articlePrimaryKey) 
346 articleJson = FrontendService.json.parseAsJson(articleJsonString) 
347 /> 
348 <@debugJsonString articleJsonString "ADT_KASDE_DYNAMIC_INTRO-autorenWCSKASDEPERSON" /> 
349 <#if hasValue('anredetitel', languageId, articleJson)> 
350 <#assign author = author + getValueForLanguage('anredetitel', languageId, articleJson, " ") + " "> 
351 </#if> 
352 <#if hasValue('vorname', languageId, articleJson)> 
353 <#assign author = author + getValueForLanguage('vorname', languageId, articleJson, " ") + " "> 
354 </#if> 
355 <#if hasValue('nachname', languageId, articleJson)> 
356 <#assign author = author + getValueForLanguage('nachname', languageId, articleJson, " ") + " "> 
357 </#if> 
358 
359 <#attempt> 
360 <#assign href = FrontendService.article.getFriendlyUrl(articlePrimaryKey, languageId, groupId)!"#" > 
361 <#recover> 
362 <#assign href = "#" > 
363 </#attempt> 
364 <#if href?has_content && href != "#" && href != "/_404"> 
365 <#assign author = '<a href="' + href + '">' + author?trim + '</a>'> 
366 </#if> 
367 
368 <#assign authors = authors + [author?trim]> 
369 </#if> 
370 </#if> 
371 </#list> 
372 <#if authors?has_content> 
373 <#assign data = data + { "author": authors?join(", ") } > 
374 </#if> 
375 </#if> 
376 
377 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL") > 
378 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "VERANSTALTUNGSTYP")! > 
379 <#if categories?has_content && categories[0]?has_content > 
380 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
381 </#if> 
382 
383 <#if hasContent('ausgebucht', languageId, json)> 
384 <#assign data = data + { "ausgebucht" : getValueForLanguage('ausgebucht', languageId, json, "first") }> 
385 </#if> 
386 
387 <#if hasContent('storniert', languageId, json)> 
388 <#assign data = data + { "storniert" : getValueForLanguage('storniert', languageId, json, "first") }> 
389 </#if> 
390 
391 <#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL") > 
392 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "PUBLIKATIONSREIHE")! > 
393 <#if categories?has_content && categories[0]?has_content > 
394 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
395 </#if> 
396 <#else> 
397 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "THEMA")! > 
398 <#if categories?has_content && categories[0]?has_content > 
399 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
400 </#if> 
401 </#if> 
402 
403 
404 <#assign 
405 languages = [] 
406 /> 
407 
408 <#attempt> 
409 <#if json["document_pdfDMTBASICDOCUMENT"]?? > 
410 <#if availablelanguages?has_content> 
411 <#list availablelanguages as pdf_language> 
412 <#assign 
413 docRefJson = getValueForLanguage('document_pdfDMTBASICDOCUMENT', pdf_language, json, "first") 
414 docRef = FrontendService.json.parseAsJson(docRefJson) 
415 /> 
416 <#if docRef?is_hash && pdf_language != languageId > 
417 <#assign 
418 lang = FrontendService.language.getLocaleByKey(pdf_language)!"" 
419 docGroupId = docRef["groupId"]?number 
420 docUuid = docRef["uuid"] 
421 dMTJsonObject = FrontendService.media.getDMTJsonObject( docGroupId, docUuid, locale ) 
422 dMTLink = FrontendService.media.getLinkToDMT( dMTJsonObject ) 
423 /> 
424 <#if lang?has_content> 
425 <#assign 
426 languages = languages + [ 
427
428 "key": pdf_language, 
429 "value": FrontendService.language.getLocaleByKey(pdf_language).getDisplayLanguage(), 
430 "url": dMTLink 
431 }] 
432 /> 
433 </#if> 
434 </#if> 
435 </#list> 
436 </#if> 
437 </#if> 
438 <#recover> 
439 </#attempt> 
440 
441 <#if (languages?size > 0)> 
442 <#attempt> 
443 <#assign 
444 data = data + { "languageSelect": { 
445 "id": "languageSelect", 
446 "name": "languageselect", 
447 "entries": languages, 
448 "documents": "", 
449 "button": "true" 
450 }} 
451 /> 
452 <#recover> 
453 </#attempt> 
454 </#if> 
455 
456 <@PMIntro "ADT_KASDE_DYNAMIC_INTRO" data AMMetadata AMDatetime "bottom" /> 
457 ${FrontendService.article.getEditArticleHtml(primaryKey, themeDisplay)} 
458 
459 <#if data.meta?has_content> 
460 <#if data.meta.laufendenummer?has_content !isACColorScheme() && !isVLCColorScheme() && !isDPMColorScheme()> 
461 <div>  
462 <div id="publicationVerbundPagination"> 
463 <@AMPublicationCarousel data.meta.laufendenummer data.meta.date data.meta.coverImg /> 
464 </div> 
465 </div> 
466 </#if> 
467 </#if> 
468 
469<#elseif (editmode?? && editmode)> 
470 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_DYNAMIC_INTRO" layouttpl currentUrl /> 
471</#if> 

Asset Publisher

Personell war der Gipfel zwischen der Afrikanischen Union (AU) und der Europäischen Union (EU) für Brüssel ein Erfolg. Rund 40 afrikanische Staats- und Regierungschefs konnten am Sitz der EU-Kommission begrüßt werden – fast doppelt so viele wie beim Gipfel der AU in Addis Abeba zwei Wochen zuvor – darunter die Präsidenten Südafrikas, Nigerias, Kenias, Äthiopiens, Senegals und Ghanas.

Die afrikanische Seite kann ihrerseits Brüssel mit dem Bewusstsein verlassen, als Partner empfangen worden zu sein, der für Europa deutlich an strategischer Bedeutung und Attraktivität gewonnen hat. Darüber hinaus machte die EU beträchtliche finanzielle Zusagen.

 „Wir wollen Afrikas Partner der Wahl sein“, sagte EU-Kommissionspräsident Dr. Ursula von der Leyen zum Abschluss des Gipfels. Leider fand der Gipfel im Schatten der sich zuspitzenden Lage in der Ukraine statt, so dass die mediale Aufmerksamkeit eher begrenzt war, zumal unmittelbar im Anschluss auch die Münchner Sicherheitskonferenz stattfand. Überschattet wurde das Treffen zudem von der am Vorabend des Gipfels verkündeten Entscheidung Frankreichs, seine Truppen aus Mali zurückzuziehen. Mali selbst war übrigens nicht zum Gipfel eingeladen, ebenso wie Sudan, Burkina Faso und Guinea. Der Grund: in allen vier Fällen hatte die AU aufgrund von Militärputschen in der jüngsten Vergangenheit die AU-Mitgliedschaft ausgesetzt.

Mit einer Vision – keiner Erklärung – wollen beide Seiten ihre Partnerschaft bis 2030 auf eine neue Basis stellen: weg von der Geber-Nehmer-Mentalität und klassischen Entwicklungszusammenarbeit, hin zu mehr Investitionen in die Wirtschaft sowie zur deutlichen Artikulierung von Interessen zweier Partner, die einander selbstbewusst begegnen.

Am Ende stand ein umfangreiches Paket, mit dem beide Seiten den Verhandlungstisch zufrieden verlassen konnten – sowohl inhaltlich als auch symbolisch.

 

Massive Investitionen geplant

Materiell sagte die EU im Zuge des Gipfels den afrikanischen Staaten ein Investitionspaket von rund 150 Mrd. Euro zu. Damit sollen insbesondere Projekte im Bereich des Transportwesens, der digitalen Infrastruktur und der „fairen“ Energiewende in Afrika finanziert werden. Das Paket ist Teil der Global Gateway Initiative der EU, die bis 2027 bis zu 300 Milliarden für Infrastrukturmaßnahmen rund um den Globus bereitstellen soll – die Hälfte davon also allein für Afrika. Dieser Plan kann gewissermaßen als europäische Antwort auf Chinas Mega-Initiative der „Neuen Seidenstraße“ verstanden werden.

Zur Bekämpfung der Covid-19-Pandemie bekräftigte die EU ihr Versprechen, 450 Millionen Impfdosen nach Afrika zu liefern. Mit 425 Mio. Euro möchte man in Zusammenarbeit mit den Africa Centres for Disease Control (Africa CDC) die Impfkampagne auf dem Kontinent unterstützen. Ein wichtiges Signal war zudem der gemeinsam mit der Weltgesundheitsorganisation WHO vorgestellt Bau eines neuartigen mRNA-Werkes in Südafrika zur Impfstoffproduktion. Ähnliche Pläne werden mit fünf weiteren Ländern des Kontinents (Kenia, Tunesien, Ägypten, Nigeria und Senegal) verfolgt. Verflogen war offenbar der tiefe Frust der Staaten des südlichen Afrikas, nachdem sie vor drei Monaten binnen Stunden in Folge der Omikron-Welle durch Reisebeschränkungen de facto von der EU abgeschnitten wurden. Lachend erklärte nun in Brüssel Südafrikas Präsident Cyril Ramaphosa, der sein Land vor einigen Wochen noch als Opfer der „Impfstoff-Apartheid“ gesehen hatte, dass Afrika zwar immer mehr wolle - und auch weiterhin auf mehr hoffe - aber dass man mit dem jetzigen Ergebnis zufrieden sein könne. Um die Werke könne ein Ökosystem entstehen, von dem die Länder weiter profitieren könnten. Die Kommissionspräsidentin verwies ihrerseits darauf, dass die EU sich dafür einsetzen werde, die nötigen rechtlichen Rahmenbedingungen zu schaffen, um den Transfer von Wissen zu ermöglichen.

Im Bereich der Sicherheit betonten beide Seiten bisherige Kooperationen sowie den Wunsch von mehr afrikanisch-geführten Friedensmissionen.

Insgesamt finden von den weltweit 18 zivilen und militärischen Missionen der EU 11 in Afrika statt. Deutschland beteiligt sich neben der EU-Mission zur Ausbildung des malischen Militärs (EUTM Mali) auch an der Uno-Mission MINUSMA, die auf Stabilisierung und Aufklärung fokussiert. Insgesamt sind ca. 1.300 Bundeswehrsoldaten in der Region im Einsatz. Die Verlängerungen der EU- und UN-Einsätze in Mali im Mai 2022 bleiben allerdings vor dem Hintergrund des nun anstehenden französischen Truppenabzugs unsicher.

Für die beim Gipfel bekräftigte „erneuerte und erweiterte Zusammenarbeit für Frieden und Sicherheit“ sollen vor allem vorhandene und inner-afrikanische Mechanismen und Foren weiter gestärkt werden. Zu diesen gehört die Afrikanische Friedens- und Sicherheitsarchitektur (APSA), die finanziell stark abhängig von Unterstützung durch die EU bleibt. Eine wirklich nachhaltige afrikanische Sicherheitsarchitektur würde mehr Eigenverantwortung und Eigenfinanzierung seitens der afrikanischen Partner erfordern. Von einer vielfach beschworenen „Partnerschaft auf Augenhöhe“ bleibt man in Anbetracht der finanziellen Abhängigkeit und schwachen Institutionen auf afrikanischer Seite aber noch weit entfernt.

Im Bereich der Migration soll weiterhin die Bekämpfung der illegalen Migration im Mittelpunkt stehen: Es sollen neue Wege der legalen Migration ermöglicht sowie außerdem die 2017 geschaffene Joint AU-EU-UN Tripartite Taskforce wiederbelebt werden. Durch die Initiative, die unter anderem zur Rückführung von Migranten beitragen soll, konnten jedoch bisher erst rund 48.000 Geflüchtete in ihre Heimatländer zurückkehren.

Keine Erfolge erreichte Afrika bei der Reallokation der Sonderziehungsrechte des IWF. Hier hatte Senegals Präsident Macky Sall beim AU-Gipfel vor zwei Wochen weitere 100 Mrd. Euro gefordert – ein Vorschlag, den Frankreichs Präsident Macron vor einem Jahr bei seiner Ankündigung eines „New Deal“ mit Afrika gemacht hatte. Die EU machte hier jedoch keine Zugeständnisse und bekundete lediglich, sich für die genannte Höhe global einsetzen zu wollen.

 

Klima und Nachhaltigkeit im Fokus

Wie in Paragraph 7 der EU-AU-Vision erwähnt, wird ein multilateraler Ansatz als der beste Weg angesehen, um den Klimawandel zu bekämpfen und abzuschwächen und globale Ungleichheiten zu verringern. Dazu soll die internationale Zusammenarbeit im Einklang mit der Agenda 2030 für nachhaltige Entwicklung und der AU-Agenda 2063 gefördert werden. Die Einbindung afrikanischer Länder in einen internationalen Klimaclub – eine enge Kooperation von Staaten, die bis Mitte des Jahrhunderts treibhausgasneutral sein wollen - bleibt weiterhin auf der Tagesordnung.

Im Bereich der grünen Transformation werden vier Hauptprioritätsbereiche unterstützt. Erstens die nachhaltige Energie mit dem Ziel, die Erzeugungskapazität für erneuerbare Energie um mindestens weitere 300 GW zu erhöhen und den Zugang zu erschwinglicher, zuverlässiger und nachhaltiger Energie zu verbessern. Zweitens der Schutz der biologischen Vielfalt, der als Unterstützung für den Schutz von Landschaften und Ökosystemen gesehen wird und die nachhaltige Nutzung natürlicher Ressourcen fördert. Bis 2030 soll die Lebensgrundlage von 65 Millionen Menschen verbessert, drei Millionen Quadratmeter Land stabilisiert und die Wassersicherheit gewährleistet werden. Der dritte Schwerpunktbereich des Investitionspakets sind die Agrar- und Ernährungssysteme, wobei der Schwerpunkt auf der Schaffung eines transparenten politischen Umfelds für nachhaltige private Investitionen liegt. Bis 2030 soll die nachhaltige Transformation der afrikanischen Lebensmittelsysteme beschleunigt werden. Klimaresilienz und Katastrophenvorsorge werden als vierter Schwerpunktbereich genannt, in den investiert werden soll.

Mit Blick auf die Energiewende ging die EU nicht auf die Forderung Afrikas ein, Gas weiter zu subventionieren. So wird die Frage, wie Afrikas Staaten dafür „entschädigt“ werden, bei ihrer Entwicklung auf fossile Brennstoffe zu verzichten, die bereits angekündigten Folgetreffen beider Seiten bis zur COP27 in Ägypten bestimmen. Frankreichs Präsident Macron erklärte bei einem Nebentreffen in Paris die Schaffung einer neuen „Just Energy Transition (JET) Partnership“ mit Afrika, deren Inhalte jedoch unklar blieben.

 

Demokratie und Menschenrechte als Randnotiz

Bereits vor dem Gipfel waren die Erwartungen an die Hauptergebnisse im Bereich Demokratie und Menschenrechte in Brüssel eher gering. Trotz der allgemeinen Erklärung Demokratie, gute Regierungsführung und Rechtsstaatsentwicklung als Kernbestandteil der Beziehungen zu deklarieren, gab es in den sieben thematischen Workshops im Rundtisch-Format zu diesen schon immer kontroversen Themen keinen einzigen Tagespunkt.

Um sich auf den genauen Wortlaut der gemeinsamen Abschlusserklärung einigen zu können, waren wie erwartet mehrere Kompromisse notwendig. So wies die Afrikanische Union zum Beispiel den Vorschlag der EU zurück, von einer „Africa-Europe-Alliance“ zu sprechen, da dieser Begriff zu geopolitisch sei. Stattdessen findet sich in der endgültigen Abschlusserklärung der Begriff „Partnerschaft“ wieder.

Außerdem strittig war die Frage, ob und wo sexuelle und reproduktive Gesundheit und Rechte in der Erklärung erwähnt werden sollen. Mögliche Formulierungen hierzu erwiesen sich sowohl für die AU, als auch für einige EU-Länder wie Polen und Ungarn als heikel und sind daher nicht im finalen Dokument zu finden. Zwar scheint der Text auf den ersten Blick fortschrittlich, da er Verweise auf die Gleichstellung der Geschlechter und die Stärkung der Rolle der Frau beinhaltet. Dass Formulierungen zur sexuellen und reproduktiven Gesundheit in der Abschlusserklärung nicht vorzufinden sind, wird in Europa vor allem von einigen Nichtregierungsorganisationen als verpasste Chance kritisiert.

Mit Blick auf das Thema Handel hatte zu Beginn des Gipfels der nigerianische Präsident Muhammadu Buhari die EU für ihre „unfairen“ Handelsabkommen mit afrikanischen Ländern kritisiert. Er argumentierte, dass die hohen europäischen Agrarsubventionen afrikanische Exporte wettbewerbsunfähig machen würden, da künstlich vergünstigte Lebensmittelimporte die afrikanischen Märkte überschwemmen und die lokale Produktion behindern. Laut Buhari würden aufstrebende afrikanische Hersteller so vom Markt gedrängt und die Gründung neuer Industrien verhindert. Sein Plädoyer in Richtung EU war es, Afrika einen grundlegend neuen Wirtschaftsvertrag zu bieten. Aufbauend auf den Diskussionen des Gipfels betonen die AU und EU in ihrer Abschlussvision die Verpflichtung zur Förderung der regionalen und kontinentalen wirtschaftlichen Integration durch die Afrikanische Kontinentale Freihandelszone (African Continental Free Trade Area, AfCFTA).

 

Wichtiges Signal im Kontext des Systemwettbewerbs

Neben den einzelnen inhaltlichen Abmachungen und Finanzierungszusagen ist vor allem die symbolische Wirkung des Gipfeltreffens zu betonen. Hier senden die Ergebnisse für die EU im Kontext des globalen Systemwettbewerbs ein starkes Signal insbesondere in Richtung Peking. Bereits einige Tage vor dem Gipfel hatte auch die EVP-Fraktion im Europäischen Parlament in einem Positionspapier zu Afrika auf die Gefahr der verschärften Systemkonkurrenz hingewiesen. Sie betrachtet die wirtschaftliche und militärische Präsenz Chinas und Russlands in „vielerlei Hinsicht als kontraproduktiv für die langfristige und nachhaltige Entwicklung“ des Kontinents.

Das zunehmende Bewusstsein zur geopolitischen Bedeutung des afrikanischen Nachbarkontinents auf der einen und die Sorge in Anbetracht des wachsenden Engagements autoritärer Konkurrenten auf der anderen Seite bilden die zentralen Motive für die Bestrebungen Europas zur Neugestaltung der EU-AU-Beziehungen.

Schon mit der Amtsübernahme Ursula von der Leyens als Kommissionspräsidentin Ende 2019 und der von ihr ausgerufenen „geopolitischen Kommission“ wurde deutlich, dass Afrika in der zukünftigen Ausgestaltung der EU-Außenbeziehungen eine besondere Bedeutung zugemessen wird. Dies wurde auch dadurch untermauert, dass von der Leyens erste Amtsreise außerhalb Europas im Dezember 2019 nicht etwa nach Washington, sondern nach Addis Abeba, zum Sitz der Afrikanischen Union führte (und sie schon zwei Monate später, im Februar 2020 mit 22 Kommissaren erneut zu Gesprächen dorthin aufbrach). Ursprünglich war der nun absolvierte Gipfel bereits im Herbst 2020 unter deutscher EU-Ratspräsidentschaft in Leipzig geplant, fiel jedoch der Covid-19-Pandemie zum Opfer und musste mehrfach verschoben werden.

Die Aufmerksamkeit für die Beziehungen mit Afrika als eine der Prioritäten im Außenhandeln der EU wird der gewachsenen Bedeutung des Kontinents im Kontext globaler Herausforderungen und neuer geopolitischer Entwicklungen gerecht.  Die Bewältigung globaler Bedrohungen wie dem Klimawandel und das Erreichen der Ziele der Agenda 2030 erfordern internationale Kooperation und multilaterale Lösungen. Afrika kommt hier eine Schlüsselrolle zu – auch mit Blick auf erforderliche strategische Partnerschaften. Das europäische Engagement in Afrika ist immer auch im Wettbewerb mit anderen externen Akteuren auf dem Kontinent zu sehen.

 

Bekenntnis zur multilateralen Kooperation

Die EU will sich als globaler Partner Afrikas für die Interessen des Nachbarkontinents bei der Reform der WTO, des UN-Sicherheitsrates sowie in den Verhandlungen zur diesjährigen COP27 in Kairo einsetzen. In den relevanten multilateralen Foren strebt die EU eine tiefere Zusammenarbeit mit Afrika an, um die internationale Ordnung aufrechtzuhalten und um diese gemeinsam mit afrikanischen Staaten zu reformieren. Gemeinsam stellen die EU und AU insgesamt 42 Prozent der Mitglieder der Vereinten Nationen. Zugleich hat sich China in den letzten Jahren stark um Allianzbildung mit afrikanischen Staaten bemüht und verfolgt dabei die Strategie afrikanische Partner wirtschaftlich zu unterstützen, die dann umgekehrt z.B. im Menschenrechtsrat im Sinne Chinas abstimmen und Beijing unterstützen, wenn der Volksrepublik Verstöße gegen die Menschenrechte vorgeworfen werden. Auch Europa geht es bei der Allianzbildung daher um mehr als nur Fragen der wirtschaftlichen Kooperation, sondern auch um die Förderung der eigenen Werte und die Gestaltung der internationalen Ordnung im Sinne dieser Werte.

Das Bekenntnis zur Afrikanischen Union als multilateralem Wunschpartner auf afrikanischer Seite (welches es in dieser Form erst seit dem Vorgänger-Gipfel von 2017 gibt) stellt in sich auch eine Herausforderung dar. Dabei ist zu betonen, dass man es bei der EU auf der einen und der AU auf der anderen Seite mit zwei sehr unterschiedlichen Verhandlungspartnern zu tun hat. Die AU ist in ihrer Struktur nicht vergleichbar mit der EU, vor allem aufgrund der nicht gegebenen Kompetenzabtretung der Mitgliedsstaaten. Die offensichtlichen Schwächen der AU dürfen nicht übersehen werden: die Gipfel der AU führen zumeist nur zu Absichtserklärungen, Beschlüsse werden selten umgesetzt, in den meisten Fällen fehlen die finanziellen Möglichkeiten. In vielen Krisen auf dem Kontinent bleibt die AU untätig und mit Blick auf internationale Gremien tut man sich schwer, mit einer Stimme für Afrika zu sprechen. Die finanzielle Abhängigkeit von externen Gebern eröffnet zudem auch Akteuren wie China Möglichkeiten der Einflussnahme. Zur dringend benötigten Modernisierung der AU wurde bereits vor einigen Jahren eine Kommission unter Vorsitz des ruandischen Präsidenten Kagame eingerichtet. Abgesehen vom großen Erfolg, das Projekt der Afrikanischen Kontinentalen Freihandelsabkommens (AfCTA) in Kraft zu setzen, bleibt mit Blick auf die Empfehlungen im sogenannten Kagame-Bericht, um die AU zu einer schlagkräftigeren Organisation zu machen, noch einiges zu tun. Eine der zentralen Fragen ist die Finanzierung. Aktuell wird weiterhin nur rund ein Drittel der Mitgliedsbeiträge von den 55 Mitgliedstaaten selbst geleistet. Es ist im Interesse der EU, im Rahmen der Partnerschaft auch einen signifikanten Beitrag zur Stärkung und nachhaltigen Finanzierung der AU zu leisten, um bei Fragen der strategischen Kooperation auf einen starken multilateralen Partner auf afrikanischer Seite setzen zu können.

 

Fazit

Die EU musste beim Gipfel ihrerseits auf das – etwas unrealistische – klare Bekenntnis Afrikas zur EU verzichten. Ein Schritt, den Afrika mit Blick auf seine anderen Partner nicht gehen konnte. Am Ende fanden kluge Kommunikationsexperten dennoch eine Formel, wenn auch etwas versteckt im Text, mit der man die Besonderheit der Beziehung unterstreichen konnte. So spricht die gemeinsame „Vision“ von Europa und Afrika als „engsten Partnern und Nachbarn“.

Insgesamt kann der Gipfel als Erfolg gewertet werden. Auch wenn der ganz große Wurf einer ‚strategischen Allianz‘ ausblieb, wurden wichtige Schritte genommen, auf die sich aufbauen lässt. Dass sich die afrikanischen Partner keine primär von europäischer Seite definierte Agenda oktroyieren ließen, war ebenso absehbar wie der Widerstand gegen eine als zu exklusiv zu interpretierende Allianz. Man mag zwar näher mit Europa zusammenrücken, aber der Blick zu Partnern in anderen Himmelsrichtungen soll offenbleiben.

Die EU hat erneut deutlich gemacht: Afrika mit seinen 55 Ländern und rund 1,3 Milliarden Einwohnern ist für Europa von strategisch großer Bedeutung. Gleichzeitig bleiben die Herausforderungen enorm: Autoritarismus, politische Instabilität, demographisches Wachstum und Konfliktanfälligkeit tragen zu schwierigen Rahmenbedingungen in Afrika bei. Die Covid-19-Pandemie hat bestehende wirtschaftliche Probleme in vielen Ländern zusätzlich verschärft und den Kampf gegen die Armut massiv zurückgeworfen. Es braucht klar definierte Antworten auch von europäischer Seite mit Blick auf die „dicken Bretter“, die in Afrika zu bohren sind: Eindämmung gewaltsamer Konflikte, Stabilisierung fragiler Staaten, Anschub der wirtschaftlichen Produktivität und Wertschöpfung, Schaffung von Arbeitsplätzen für die jungen Menschen (von denen jedes Jahr 30 Millionen zusätzlich auf den Arbeitsmarkt drängen), und nicht zuletzt die „grüne Transformation“ einschließlich des Übergangs zu grüner Energie (um nur einige zu nennen).

Dass sich die afrikanischen Länder die Wahl ihrer Partner offenhalten und den Eindruck einer exklusiven oder zumindest privilegierten „Allianz“ mit der EU vermeiden wollen, ist kaum verwerflich. Aus afrikanischer Sicht bietet das breite Angebot der im Wettbewerb miteinander stehenden Partner viele (vermeintliche) Chancen. Europas Antwort muss sein, die Attraktivität des eigenen Angebots auszubauen und Schnittmengen bei den Interessen zu verdeutlichen. Das erfordert einen pragmatischen Ansatz – ohne dabei die eigenen Werte als zentrale Richtschnur aus den Augen zu verlieren. Die „Mitbewerber“ wie China und Russland kommen nicht nur mit konkurrierenden Interessen, sondern auch mit konkurrierenden Werten im Gepäck – besonders mit Blick auf Aspekte wie anhaltende Korruption, heikle Menschenrechtslagen und einen wachsenden (offenen wie versteckten) Autoritarismus in vielen afrikanischen Ländern muss Europa dies mit Sorge verfolgen.

„Die Stabilität und der Wohlstand Afrikas sind das strategische Interesse Europas“, sagte EU-Ratspräsident Charles Michel zwei Tage nach dem Gipfel in seiner Rede bei der Münchner Sicherheitskonferenz und übernahm damit beinah wörtlich den Ausspruch der früheren Bundeskanzlerin Angela Merkel, die 2016 davon gesprochen hatte, dass das „Wohl Afrikas im deutschen Interesse“ liege.

Es war jedoch weniger das Verdienst des Ratspräsidenten, dass der Gipfel aus europäischer Sicht so erfolgreich lief. Kurz vor dem Gipfel war die EU-Kommissionspräsidentin nach Senegal und Marokko gereist, um den Gipfel vorzubereiten. Senegal hat aktuell die rotierende Präsidentschaft der AU inne. Marokko ist ein wichtiger Energiepartner der EU. Mit der Priorisierung Afrikas bereits kurz nach Ihrem Amtsantritt und der damit verbundenen hochrangigen Reisediplomatie hatte sie zudem schon weit im Vorfeld wichtige Grundlagenarbeit geleistet. Die promovierte Ärztin und frühere Verteidigungsministerin hat in Afrika eines ihrer wichtigsten Themen gefunden.

Asset Publisher

Contact

Mathias Kamp

Mathias Kamp bild

Country Director Kenya

mathias.kamp@kas.de +49 30 26996 -3426

comment-portlet

Asset Publisher