close to run

This commit is contained in:
gexce
2017-10-26 17:14:51 +02:00
parent 3db724bfba
commit 978cba8229
4 changed files with 70 additions and 40 deletions
@@ -219,7 +219,7 @@ skip;BusinessUnit.General,Brand.General,MediaType.Guideline;;;Guidelines;;;;;;
skip;;;;;AH Meeting Culture;;;;; skip;;;;;AH Meeting Culture;;;;;
skip;;;;;Agency Briefing Templates;;;;; skip;;;;;Agency Briefing Templates;;;;;
skip;;;;;BAH eDetailer Template;;;;; skip;;;;;BAH eDetailer Template;;;;;
classify;BusinessUnit.CAP;;;;CAP Brand/Packaging Design;;;;;kann eine Guideline in Brand.General, aber in BusinessUnit CAP sein? skip;BusinessUnit.CAP;;;;CAP Brand/Packaging Design;;;;;kann eine Guideline in Brand.General, aber in BusinessUnit CAP sein?
campaign;(2009-2017);;;;;Advantage Family;;;; campaign;(2009-2017);;;;;Advantage Family;;;;
campaign;(2003-2012);;;;;Bolfo/Bayopet (OTC);;;; campaign;(2003-2012);;;;;Bolfo/Bayopet (OTC);;;;
campaign;(2012-2017);;;;;Drontal Product Family;;;; campaign;(2012-2017);;;;;Drontal Product Family;;;;
@@ -228,12 +228,12 @@ campaign;(2005);;;;;Kiltix Products;;;;
campaign;(2017);;;;;Lifestyle Photography 2017;;;; campaign;(2017);;;;;Lifestyle Photography 2017;;;;
campaign;(2009-2012);;;;;Profender Products;;;; campaign;(2009-2012);;;;;Profender Products;;;;
campaign;(2011-2017);;;;;Seresto Packaging;;;; campaign;(2011-2017);;;;;Seresto Packaging;;;;
classify;BusinessUnit.FAP;;;;FAP Brand/Packaging Design;;;;; skip;BusinessUnit.FAP;;;;FAP Brand/Packaging Design;;;;;
campaign;(2011);;;;;Farm Animal Products;;;; campaign;(2011);;;;;Farm Animal Products;;;;
campaign;(2006);;;;;Farmhygiene Products;;;; campaign;(2006);;;;;Farmhygiene Products;;;;
skip;;;;;Global Exhibit Design Manual;;;;; skip;;;;;Global Exhibit Design Manual;;;;;
not migrated;;;;;Training Tools - MediaAssistant;;;;; not migrated;;;;;Training Tools - MediaAssistant;;;;;
classify;BusinessUnit.General;;;Images;;;kommt komplett in Space General;;;Nach Motives-Baum unter Images classify;BusinessUnit.General,Brand.General;;;Images;;;kommt komplett in Space General;;;Nach Motives-Baum unter Images
motives;;;;;Applications;;;;; motives;;;;;Applications;;;;;
motives;;;;;Different animals together;;;;; motives;;;;;Different animals together;;;;;
motives;;;;;Disease Symptoms;;;;; motives;;;;;Disease Symptoms;;;;;
@@ -283,7 +283,7 @@ motives;;;;;;Zoo and other animals;;;;
motives;;;;;Worms (Helminths);;;;; motives;;;;;Worms (Helminths);;;;;
motives;;;;;;Roundworms;;;; motives;;;;;;Roundworms;;;;
motives;;;;;;Tapeworms;;;; motives;;;;;;Tapeworms;;;;
skip;;;;Logos;;;;;;bitte den Brands zuordnen not migrated;;;;Logos;;;;;;bitte den Brands zuordnen
skip;;;;Packshots;;;;;; skip;;;;Packshots;;;;;;
classify;BusinessUnit.CAP,Brand.Advantage;;;;Advantage;;;;; classify;BusinessUnit.CAP,Brand.Advantage;;;;Advantage;;;;;
classify;BusinessUnit.CAP,Brand.Advantix;;;;Advantix;;;;; classify;BusinessUnit.CAP,Brand.Advantix;;;;Advantix;;;;;
@@ -341,7 +341,7 @@ brand;;;;;;Seresto;;;;
not migrated;;;BAH Image series;;;;;;;wird nicht migriert not migrated;;;BAH Image series;;;;;;;wird nicht migriert
skip;;;;Image series 1;;;;;; skip;;;;Image series 1;;;;;;
skip;;;;Image series 2;;;;;; skip;;;;Image series 2;;;;;;
classify;Status.Archived;;BAH Internal Videos;;"alle ins Archiv -> unter classification ""interne Videos""";;;;; not migrated;Status.Archived;;BAH Internal Videos;;"alle ins Archiv -> unter classification ""interne Videos""";;;;;BusinessUnit? Brand?
not migrated;;;BAH Webshop;;;;;;;wird nicht migriert not migrated;;;BAH Webshop;;;;;;;wird nicht migriert
skip;;;;Advantage;;;;;; skip;;;;Advantage;;;;;;
skip;;;;Advantix;;;;;; skip;;;;Advantix;;;;;;
1
219 skip BAH eDetailer Template
220 classify skip BusinessUnit.CAP CAP Brand/Packaging Design kann eine Guideline in Brand.General, aber in BusinessUnit CAP sein?
221 campaign (2009-2017) Advantage Family
222 campaign (2003-2012) Bolfo/Bayopet (OTC)
223 campaign (2012-2017) Drontal Product Family
224 campaign (2014) Ethical Pack
225 campaign (2005) Kiltix Products
228 campaign (2011-2017) Seresto Packaging
229 classify skip BusinessUnit.FAP FAP Brand/Packaging Design
230 campaign (2011) Farm Animal Products
231 campaign (2006) Farmhygiene Products
232 skip Global Exhibit Design Manual
233 not migrated Training Tools - MediaAssistant
234 classify BusinessUnit.General BusinessUnit.General,Brand.General Images kommt komplett in Space General Nach Motives-Baum unter Images
235 motives Applications
236 motives Different animals together
237 motives Disease Symptoms
238 motives Organs
239 motives Skin
283 motives Tapeworms
284 skip not migrated Logos bitte den Brands zuordnen
285 skip Packshots
286 classify BusinessUnit.CAP,Brand.Advantage Advantage
287 classify BusinessUnit.CAP,Brand.Advantix Advantix
288 classify BusinessUnit.CAP,Brand.Advocate Advocate
289 classify BusinessUnit.FAP,Brand.Baycox Baycox
341 skip Image series 2
342 classify not migrated Status.Archived BAH Internal Videos alle ins Archiv -> unter classification "interne Videos" BusinessUnit? Brand?
343 not migrated BAH Webshop wird nicht migriert
344 skip Advantage
345 skip Advantix
346 skip Advocate
347 skip BAH in general
@@ -15,6 +15,7 @@ public class Definitions {
public static final Map<String, String> classificationGuidToKeyMap; public static final Map<String, String> classificationGuidToKeyMap;
public static final Map<String, String> fieldIDs; public static final Map<String, String> fieldIDs;
public static final Map<Long, String> mediaTypes; public static final Map<Long, String> mediaTypes;
public static final Map<String, String> users;
public static final String defaultLanguage = "c2bd4f9bbb954bcb80c31e924c9c26dc"; //"00000000000000000000000000000000"; public static final String defaultLanguage = "c2bd4f9bbb954bcb80c31e924c9c26dc"; //"00000000000000000000000000000000";
public static final String defaultProjectLead = "21cfce6116484269a351a71300e1fed0"; public static final String defaultProjectLead = "21cfce6116484269a351a71300e1fed0";
@@ -46,6 +47,7 @@ public class Definitions {
// /Bayer/Animal Health/Brands // /Bayer/Animal Health/Brands
classifications.put("Brand.General", new WriteClassification("92b4b27a09f2487dbba6a70f00f7baa3", 1)); classifications.put("Brand.General", new WriteClassification("92b4b27a09f2487dbba6a70f00f7baa3", 1));
// CAP
classifications.put("Brand.Advantage", new WriteClassification("b3f04996de1644df9d08a6dd00cff70e", 1)); classifications.put("Brand.Advantage", new WriteClassification("b3f04996de1644df9d08a6dd00cff70e", 1));
classifications.put("Brand.Advantix", new WriteClassification("dc758de7d91e44d6a768a6dd00cff7ad", 1)); classifications.put("Brand.Advantix", new WriteClassification("dc758de7d91e44d6a768a6dd00cff7ad", 1));
classifications.put("Brand.Advocate", new WriteClassification("c7979fc30bb843e486bba6dd00cff835", 1)); classifications.put("Brand.Advocate", new WriteClassification("c7979fc30bb843e486bba6dd00cff835", 1));
@@ -62,6 +64,7 @@ public class Definitions {
classifications.put("Brand.miscellaneous", new WriteClassification("bc9d93616c0548f99f7fa6dd00cff69d", 1)); classifications.put("Brand.miscellaneous", new WriteClassification("bc9d93616c0548f99f7fa6dd00cff69d", 1));
classifications.put("Brand.Miscellaneous", new WriteClassification("bc9d93616c0548f99f7fa6dd00cff69d", 1)); classifications.put("Brand.Miscellaneous", new WriteClassification("bc9d93616c0548f99f7fa6dd00cff69d", 1));
// FAP
classifications.put("Brand.Baycox", new WriteClassification("ef3028f6ba8744508035a6dd00cffe45", 1)); classifications.put("Brand.Baycox", new WriteClassification("ef3028f6ba8744508035a6dd00cffe45", 1));
classifications.put("Brand.Bayticol", new WriteClassification("bd1819c976e643bf916ba6dd00cffec4", 1)); classifications.put("Brand.Bayticol", new WriteClassification("bd1819c976e643bf916ba6dd00cffec4", 1));
classifications.put("Brand.Baytril", new WriteClassification("1053978a142742ad8033a6dd00cfff42", 1)); classifications.put("Brand.Baytril", new WriteClassification("1053978a142742ad8033a6dd00cfff42", 1));
@@ -76,6 +79,7 @@ public class Definitions {
classifications.put("Brand.Zelnate", new WriteClassification("b3887552c9554d6991e4a6dd00d006ee", 1)); classifications.put("Brand.Zelnate", new WriteClassification("b3887552c9554d6991e4a6dd00d006ee", 1));
classifications.put("Brand.FAP.Others", new WriteClassification("ac169c77ab944a03bfada70f00f7ac43", 1)); classifications.put("Brand.FAP.Others", new WriteClassification("ac169c77ab944a03bfada70f00f7ac43", 1));
// Media Types
classifications.put("MediaType.Other", new WriteClassification("7c13e620-7eb0-4c12-9dfb-a7b4008f19b1", 1)); classifications.put("MediaType.Other", new WriteClassification("7c13e620-7eb0-4c12-9dfb-a7b4008f19b1", 1));
classifications.put("MediaType.Banner", new WriteClassification("eb786339a5de44679ff6a7b4008f1ee0", 1)); classifications.put("MediaType.Banner", new WriteClassification("eb786339a5de44679ff6a7b4008f1ee0", 1));
classifications.put("MediaType.Book", new WriteClassification("25a59832a6f84cb0a477a73100a2a091", 1)); classifications.put("MediaType.Book", new WriteClassification("25a59832a6f84cb0a477a73100a2a091", 1));
@@ -104,6 +108,20 @@ public class Definitions {
classificationGuidToKeyMap.put(entry.getValue().id, entry.getKey()); classificationGuidToKeyMap.put(entry.getValue().id, entry.getKey());
} }
// Fields
fieldIDs = new HashMap<String, String>();
fieldIDs.put("byr_Title", "31f337fa-add6-4e25-a672-a68a00d4ff3b");
fieldIDs.put("byr_ah_approvalNumber", "69d65b63-613b-49d6-bc11-a731010bbec8");
fieldIDs.put("byr_ah_description", "f9e40f87-493e-4f17-b129-a6dd00d063b2"); // Additional Information
fieldIDs.put("byr_ah_projectLead", "5400d446-9d95-4158-ac06-a6dd00d06a12");
fieldIDs.put("byr_ah_brandCommunicationRepresentative", "5b34f2db-efff-48fd-bc7f-a731010bbda1");
fieldIDs.put("byr_creationDate", "403fea1c-c154-4e3b-a941-a68a00d4fcc3");
fieldIDs.put("byr_ah_keywords_tl", "6d582cfaa5b94101ab1fa6fd007e2fcd");
fieldIDs.put("byr_ah_licenseHolderList", "de3f83cb50e747228bfea731010bc27c");
fieldIDs.put("byr_ah_licenseAdditionalPermittedUse", "5c9d43a0-bf70-4fb5-8ad4-a731010bc1ef");
fieldIDs.put("byr_ah_licenseComments", "dd4b899f-10b7-45db-a530-a6dd00d0630a");
// Media Type mappings
mediaTypes = new HashMap<Long, String>(); mediaTypes = new HashMap<Long, String>();
mediaTypes.put(1L, "MediaType.unassigned"); mediaTypes.put(1L, "MediaType.unassigned");
mediaTypes.put(2L, "MediaType.Image"); mediaTypes.put(2L, "MediaType.Image");
@@ -138,18 +156,15 @@ public class Definitions {
mediaTypes.put(32L, "MediaType.Booth"); mediaTypes.put(32L, "MediaType.Booth");
mediaTypes.put(34L, "MediaType.Folder"); mediaTypes.put(34L, "MediaType.Folder");
// Fields users = new HashMap<String, String>();
fieldIDs = new HashMap<String, String>(); users.put("32300", "02bee145-2a37-4f49-acba-a74600bda888"); // marion.schmidtmeier@bayer.com
fieldIDs.put("byr_Title", "31f337fa-add6-4e25-a672-a68a00d4ff3b"); users.put("32421", "c68e1a72-f218-48f0-ac4d-a72900796cc1"); // claudia.staubes-dunkel@bayer.com
fieldIDs.put("byr_ah_approvalNumber", "69d65b63-613b-49d6-bc11-a731010bbec8"); users.put("32422", "ef573ad7-aa7f-44cd-9c5f-a743007ecfb6"); // roswitha.wolff@bayer.com
fieldIDs.put("byr_ah_description", "f9e40f87-493e-4f17-b129-a6dd00d063b2"); // Additional Information users.put("32820", "c24a1e1d-63f7-4713-886c-a7450091a7ed"); // ulrike.kopp@bayer.com
fieldIDs.put("byr_ah_projectLead", "5400d446-9d95-4158-ac06-a6dd00d06a12"); users.put("32960", "e5fd6e3b-5650-4dea-b8e7-a743007ecef1"); // susanne.sikorra@bayer.com
fieldIDs.put("byr_ah_brandCommunicationRepresentative", "5b34f2db-efff-48fd-bc7f-a731010bbda1"); users.put("33160", "8ce7cc2a-134c-4c65-8e35-a7430089851a"); // nikolaus.brunner@bayer.com
fieldIDs.put("byr_creationDate", "403fea1c-c154-4e3b-a941-a68a00d4fcc3"); users.put("33180", "9e40bd5c-70a9-41e1-8877-a74300744e8b"); // christian.stilez@bayer.com
fieldIDs.put("byr_ah_keywords_tl", "6d582cfaa5b94101ab1fa6fd007e2fcd");
fieldIDs.put("byr_ah_licenseHolderList", "de3f83cb50e747228bfea731010bc27c");
fieldIDs.put("byr_ah_licenseAdditionalPermittedUse", "5c9d43a0-bf70-4fb5-8ad4-a731010bc1ef");
fieldIDs.put("byr_ah_licenseComments", "dd4b899f-10b7-45db-a530-a6dd00d0630a");
} }
public static Field createSingleValueField(String name, String value) { public static Field createSingleValueField(String name, String value) {
@@ -123,8 +123,8 @@ public class MamMigrationSelective implements CommandLineRunner {
// XXX // XXX
if (id > 80000 || id < 72048) // if (id > 80000 || id < 72009) //72048
continue; // continue;
@@ -163,6 +163,7 @@ public class MamMigrationSelective implements CommandLineRunner {
void postToAdam(Entry entry) throws Exception { void postToAdam(Entry entry) throws Exception {
UploadRecord record = new UploadRecord(); UploadRecord record = new UploadRecord();
String entryJson = jsonMapper.writeValueAsString(entry); String entryJson = jsonMapper.writeValueAsString(entry);
Set<String> keywords = new HashSet<String>();
// globally applicable classifications // globally applicable classifications
record.addClassification("MediaAssistant-Migration"); record.addClassification("MediaAssistant-Migration");
@@ -174,7 +175,8 @@ public class MamMigrationSelective implements CommandLineRunner {
record.addClassification(Definitions.mediaTypes.get(entry.mediaType.id)); record.addClassification(Definitions.mediaTypes.get(entry.mediaType.id));
// process categories // process categories
Set<String> keywords = new HashSet<String>(); if (entry.categories.size() > 1)
log.warn("Entry " + entry.id + " has " + entry.categories.size() + " categories assigned");
for (int categoryId : entry.categories) { for (int categoryId : entry.categories) {
log.debug("Category: " + categoryId); log.debug("Category: " + categoryId);
@@ -209,7 +211,8 @@ public class MamMigrationSelective implements CommandLineRunner {
if (p.startsWith("Status.")) { if (p.startsWith("Status.")) {
if (!p.equals("Status.Released")) if (!p.equals("Status.Released"))
record.removeClassification("Status.Released"); record.removeClassification("Status.Released");
else if (record.hasClassificationStartingWith("Status.")){ else if (record.hasClassificationStartingWith("Status.Draft")
|| record.hasClassificationStartingWith("Status.Archived")) {
log.warn("Classification Status.Released not added, different status already set"); log.warn("Classification Status.Released not added, different status already set");
continue; continue;
} }
@@ -222,7 +225,6 @@ public class MamMigrationSelective implements CommandLineRunner {
} }
if (p.startsWith("Brand.")) { if (p.startsWith("Brand.")) {
// always use the most specific brand
if (p.equals("Brand.General") && record.hasClassificationStartingWith("Brand.")) { if (p.equals("Brand.General") && record.hasClassificationStartingWith("Brand.")) {
log.warn("Classification Brand.General not added, different brand already set"); log.warn("Classification Brand.General not added, different brand already set");
continue; continue;
@@ -285,7 +287,7 @@ public class MamMigrationSelective implements CommandLineRunner {
String campaignGuid = null; String campaignGuid = null;
for (Campaign c : campaigns) { for (Campaign c : campaigns) {
if (c.name.equals(campaignName)) { if (c.name.equals(campaignName)) {
log.debug("Found already existing campaign '" + campaignName + "' with guid " + campaignGuid); log.debug("Add existing campaign " + campaignName);
campaignGuid = c.guid; campaignGuid = c.guid;
record.addClassification(new WriteClassification(campaignGuid, 1)); record.addClassification(new WriteClassification(campaignGuid, 1));
} }
@@ -329,9 +331,23 @@ public class MamMigrationSelective implements CommandLineRunner {
record.addField("byr_Title", "No title"); record.addField("byr_Title", "No title");
} }
// TODO // Project lead
record.addField("byr_ah_projectLead", Collections.singletonList(Definitions.defaultProjectLead)); if (entry.user != null && entry.user.get("id") != null) {
record.addField("byr_ah_brandCommunicationRepresentative", Collections.singletonList(Definitions.defaultProjectLead)); if (Definitions.users.get(entry.user.get("id")) != null) {
record.addField("byr_ah_projectLead", Collections.singletonList(Definitions.users.get(entry.user.get("id"))));
record.addField("byr_ah_brandCommunicationRepresentative", Collections.singletonList(Definitions.users.get(entry.user.get("id"))));
}
else {
log.warn("Entry " + entry.id + ": MAM user " + entry.user.get("id") + " not available, assigning default user");
record.addField("byr_ah_projectLead", Collections.singletonList(Definitions.defaultProjectLead));
record.addField("byr_ah_brandCommunicationRepresentative", Collections.singletonList(Definitions.defaultProjectLead));
}
}
else {
log.warn("Entry " + entry.id + ": No user, assigning default user");
record.addField("byr_ah_projectLead", Collections.singletonList(Definitions.defaultProjectLead));
record.addField("byr_ah_brandCommunicationRepresentative", Collections.singletonList(Definitions.defaultProjectLead));
}
// Description / Additional Information // Description / Additional Information
String description = entry.description.get("en"); String description = entry.description.get("en");
@@ -381,21 +397,20 @@ public class MamMigrationSelective implements CommandLineRunner {
if (entry.gpc != null) if (entry.gpc != null)
record.addField("byr_ah_approvalNumber",entry.gpc.gpcNumber); record.addField("byr_ah_approvalNumber",entry.gpc.gpcNumber);
// XXX
// Create record // Create record
// HttpEntity<UploadRecord> httpEntity = new HttpEntity<UploadRecord>(record, adamHeaders); HttpEntity<UploadRecord> httpEntity = new HttpEntity<UploadRecord>(record, adamHeaders);
// try { try {
// URI location = restTemplate.postForLocation(adamHost + "/records", httpEntity, UploadRecord.class); URI location = restTemplate.postForLocation(adamHost + "/records", httpEntity, UploadRecord.class);
// log.info("RESULT Entry " + entry.id + " migrated to record " + location); log.info("RESULT Entry " + entry.id + " migrated to record " + location);
//
// FileUtils.writeStringToFile(entryLog, location.toString() + fieldSeparator + entryJson + lineSeparator, FileUtils.writeStringToFile(entryLog, location.toString() + fieldSeparator + entryJson + lineSeparator,
// Charset.forName("utf-8"), true); Charset.forName("utf-8"), true);
// } }
// catch (HttpStatusCodeException hsce) { catch (HttpStatusCodeException hsce) {
// log.error("RESULT Skipping entry " + entry.id + ": Error while creating record " + hsce.getStatusCode().toString()); log.error("RESULT Skipping entry " + entry.id + ": Error while creating record " + hsce.getStatusCode().toString());
// log.error(hsce.getResponseBodyAsString()); log.error(hsce.getResponseBodyAsString());
// FileUtils.writeStringToFile(problemLog, entry.id + fieldSeparator + entryJson + lineSeparator, Charset.forName("utf-8"), true); FileUtils.writeStringToFile(problemLog, entry.id + fieldSeparator + entryJson + lineSeparator, Charset.forName("utf-8"), true);
// } }
} }
private void readEntryIDsFromFile() throws IOException { private void readEntryIDsFromFile() throws IOException {