Aktive Konfiguration: PROD · Helmut4 PROD · helmut4_backup_l-helmut1.adin.mdr.de_2026-10-18 10_57_41 202 Streams
Öffnen
TEST IO

Prüfe Projekt nach "RSS-Offline" Assets

Helmut4 TEST · helmut4_backup_192.168.178.209_2026-10-18 20_33_12

Struktur und Aufrufe dieses Streams prüfen Im HView öffnen Abhängigkeiten
Zur Konfiguration
Hervorgehobener Node: bfe2447d-6d62-4552-92e3-3f4e8c2e86b2
Die UUID wird in den Rohdaten markiert. Die Node-Klasse findest du in der Deprecated-Arbeitsliste oder direkt im JSON-Ausschnitt.

Aktivierung

Aktiviert

Jobstatus im Dashboard

Custom_IO ohne eigenes Jobobjekt

Grafische Streamansicht

36 Nodes
Klick auf einen Node zeigt Details. positiv negativ Trigger

Variablen und Fundstellen

0
Keine direkten Variablenverwendungen erkannt.

Stream-Rohdaten

{
  "id": "69e8d477eb54806a69625778",
  "name": "Prüfe Projekt nach \"RSS-Offline\" Assets",
  "createDate": "2026-04-22T14:00:23.359Z",
  "modificationDate": "2026-08-21T12:08:43.199Z",
  "streamEvent": "CUSTOM_IO",
  "streamHost": "CLIENT",
  "disabled": false,
  "startNodeUUID": "606d5bfb-a533-421a-b309-d86b952b0340",
  "groups": [
    "6733958330d3840001b9f8f7",
    "619b6fe995dc0e00015cb575"
  ],
  "order": 16,
  "tags": [
    "IO"
  ],
  "design": "{\"operators\":{\"0\":{\"top\":170,\"left\":1450,\"properties\":{\"description\":\"Will execute ExtendScript in Premiere (panel required)\",\"title\":\"Job Execute ExtendScript In Premiere Action V2\",\"nodeUUID\":\"faa17f4f-b856-45bf-911b-e2815f3af416\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2\",\"className\":\"actionNode\",\"parameter\":{\"ExtendScript\":{\"type\":\"LONG_STRING\",\"variableName\":\"extendScript\",\"value\":\"try{(function(){var morePaths = '{stream.variable.morePaths}';var hardPaths = [\\\"T:\\\\\\\\Produktion\\\\\\\\RSS\\\", \\\"T:/Produktion/RSS\\\", \\\"/Produktion/RSS/LoRes/\\\", \\\"killphil/Premiere/Material/\\\",\\\"\\\\\\\\\\\\\\\\l-fslores1.adin.mdr.de\\\\\\\\rss\\\",\\\"\\\\\\\\\\\\\\\\l-fslores.adin.mdr.de\\\\\\\\RSS\\\\\\\\\\\"]; var allowedPaths = hardPaths.concat(morePaths);function jsonStringify(obj) { if (obj === null) return \\\"null\\\"; if (typeof obj === \\\"string\\\") return '\\\"' + obj.replace(/\\\\\\\\/g, '\\\\\\\\\\\\\\\\').replace(/\\\"/g, '\\\\\\\\\\\"') + '\\\"'; if (typeof obj === \\\"number\\\" || typeof obj === \\\"boolean\\\") return obj.toString(); if (obj instanceof Array) { var items = []; for (var i = 0; i < obj.length; i++) { items.push(jsonStringify(obj[i])); } return \\\"[\\\" + items.join(\\\",\\\") + \\\"]\\\"; } if (typeof obj === \\\"object\\\") { var props = []; for (var key in obj) { if (obj.hasOwnProperty(key)) { props.push(jsonStringify(key) + \\\":\\\" + jsonStringify(obj[key])); } } return \\\"{\\\" + props.join(\\\",\\\") + \\\"}\\\"; } return 'null'; }function collectAllMediaItems(folder, list) { for (var i = 0; i < folder.children.numItems; i++) { var item = folder.children[i]; if (item.type === ProjectItemType.BIN) { collectAllMediaItems(item, list); } else { if (item.getMediaPath && item.getMediaPath() !== \\\"\\\") { list.push(item); } } }}function checkAssetValidation(mediassets, allowedPaths) { var invalidAssets = []; function isPathAllowed(path) { for (var i = 0; i < allowedPaths.length; i++) { if (path.toLowerCase().indexOf(allowedPaths[i].toLowerCase()) !== -1) { return true; } } return false; } for (var i = 0; i < mediassets.length; i++) { if (!isPathAllowed(mediassets[i].getMediaPath())) { invalidAssets.push(mediassets[i]); } } return invalidAssets;}function getFilenameFromPath(fullPath) { var file = new File(fullPath); return file.name;}function copyFile(srcPath, destPath, overwrite, assetname) { var src = new File(srcPath); var dest = new File(destPath); var casset = { name: assetname, src: src.fsName, dest: dest.fsName, fcopy: false, finfo: '-' }; if (!src.exists) { casset.finfo = \\\"Quelldatei existiert nicht\\\"; return casset; } if (dest.exists && !overwrite) { casset.finfo= \\\"Zieldatei existiert bereits\\\"; return casset; } if (dest.exists && overwrite) { dest.remove(); } casset.fcopy = true; casset.finfo = \\\"Simuliertes Kopieren keine echte Kopie durchgeführt\\\"; return casset; }function copyAllBadAssets(assets){ var sep = (typeof Folder !== \\\"undefined\\\" && Folder.separator) ? Folder.separator : '/'; var projectFolder = new Folder(app.project.path).parent.parent; var destPath = projectFolder.fullName; destPath += sep + \\\"Medienimporte\\\"; var destFolder = new Folder(destPath); if (!destFolder.exists) destFolder.create(); var linkPath = projectFolder.fullName + sep + \\\"Asset_Link_Jobs\\\"; var linkFolder = new Folder(linkPath); if (!linkFolder.exists) linkFolder.create(); var srcFile = ''; var destFile = ''; var tasksList = []; var missingList = []; for (var j = 0; j < assets.length; j++) { srcFile = assets[j].getMediaPath(); destFile = destFolder.fsName + sep + getFilenameFromPath(assets[j].getMediaPath()); var copyresult = copyFile(srcFile, destFile, true, assets[j].name ); if (copyresult.fcopy) { var linkFile = new File(linkFolder.fsName + sep + copyresult.name + \\\".txt\\\"); linkFile.encoding = \\\"UTF-8\\\"; if (linkFile.open(\\\"w\\\")) { linkFile.write(jsonStringify(copyresult)); linkFile.close(); } else { alert(\\\"Konnte Asset_Link Job nicht schreiben: \\\" + linkFile.fsName); } tasksList.push(copyresult); } else { missingList.push(copyresult); } } return {tasksList: tasksList, missingList: missingList };}function logCassetListToProjectFolder(cassets, extraname, showOutput){ if (!app.project.path) { alert(\\\"Projekt wurde noch nicht gespeichert.\\\"); return; } var projectFolder = new Folder(app.project.path).parent; var now = new Date(); function pad(n) { return (n < 10 ? \\\"0\\\" : \\\"\\\") + n; } var timestamp = now.getFullYear() + \\\"-\\\" + pad(now.getMonth() + 1) + \\\"-\\\" + pad(now.getDate()) + \\\"_\\\" + pad(now.getHours()) + \\\"-\\\" + pad(now.getMinutes()) + \\\"-\\\" + pad(now.getSeconds()); var logfile = new File(projectFolder.fullName + \\\"/asset_log_\\\" + extraname + timestamp + \\\".txt\\\"); logfile.encoding = \\\"UTF-8\\\"; if (logfile.open(\\\"w\\\")) { logfile.writeln(\\\"Asset-Log \\\" + now.toLocaleString()); logfile.writeln(\\\"=========================================================\\\\n\\\"); for (var i = 0; i < cassets.length; i++) { var a = cassets[i]; logfile.writeln(\\\" Asset: \\\" + a.name); logfile.writeln(\\\" Quelle: \\\" + a.src); logfile.writeln(\\\" Ziel: \\\" + a.dest); if (a.fcopy) { logfile.writeln(\\\" Status Kopieren: Erfolgreich kopiert\\\"); } else { logfile.writeln(\\\" Status Kopieren: Fehler beim Kopieren\\\"); } logfile.writeln(\\\" Info: \\\" + a.finfo); logfile.writeln(\\\"\\\"); } logfile.close(); if (showOutput) { logfile.execute(); } } else { alert(\\\"Konnte Log-Datei nicht schreiben.\\\"); }}var projectItems = [];var jdata = {\\\"count\\\": 0};function doWorkflow(){collectAllMediaItems(app.project.rootItem, projectItems);if (projectItems.length > 0){ var badAssets = checkAssetValidation(projectItems, allowedPaths); var badlist = ''; for (var j = 0; j < badAssets.length; j++) { badlist = badlist + badAssets[j].name + \\\", \\\"; } if (badAssets.length > 0) { var confirmResult = confirm(\\\"Folgende Assets sind nicht auf dem RSS-Server zentral abgelegt:\\\"+'\\\\n\\\\n'+badlist+\\\"Soll ich eine Korrektur starten?\\\", true, \\\"Ungültige Asset-Pfade\\\"); if (confirmResult) { var result = copyAllBadAssets(badAssets); logCassetListToProjectFolder(result.tasksList,\\\"\\\", false); var alldata = {jdata: result.tasksList, count: result.tasksList.length}; jdata = jsonStringify(alldata); if (result.tasksList.length != badAssets.length) { alert(\\\"Nicht alle ungültigen Assets konnten korrigiert werden. Bitte prüfen Sie die Log-Datei.\\\"); logCassetListToProjectFolder(result.missingList, \\\"missing_\\\", true); } } } else { alert(\\\"Alle Asset-Pfade sind gültig und liegen zentral verfügbar.\\\"); return jdata; } }return jdata;}doWorkflow();return true;})()}catch(e){alert(\\\"FEHLER: \\\"+e.toString());}\"}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"1\":{\"top\":605,\"left\":5340,\"properties\":{\"description\":\"Will split a stream into a synchronous and an asynchronous way. Required if a stream's execution time might exceed 60 seconds. A stream fails after 60 seconds. The asynchronous path is executed synchronously in itself and may take longer than 60 seconds\",\"title\":\"Split Stream Action\",\"nodeUUID\":\"f78d6074-ecdf-4614-8d42-45bd13181305\",\"uncontained\":false,\"class\":\"nodes.actions.general.SplitStreamActionImpl\",\"className\":\"actionNode\",\"parameter\":{},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"2\":{\"top\":155,\"left\":3955,\"properties\":{\"description\":\"Will create a new job\",\"title\":\"Job Create Job Action V2\",\"nodeUUID\":\"b8e100e1-e354-43c5-88a9-3314c427bd59\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.job.JobCreateJobActionImplV2\",\"className\":\"actionNode\",\"parameter\":{\"Profile ID\":{\"type\":\"STRING\",\"description\":\"Profile ID (IO/CO/HK) of the profile to be triggered\",\"variableName\":\"profileId\",\"placeholder\":\"53gsbao34dlso9474jd\",\"values\":[\"{job.profile}\"],\"value\":\"68ee3742b43a1731e113b075\"},\"Job name\":{\"type\":\"STRING\",\"description\":\"Name with which the job is created\",\"variableName\":\"jobName\",\"placeholder\":\"{job.name} or my_desired_job_name\",\"values\":[\"{job.name}\"],\"value\":\"{project.name}\"},\"Source file\":{\"type\":\"STRING\",\"description\":\"Source file path (incl. name and extension)\",\"variableName\":\"sourceFile\",\"placeholder\":\"{job.path} or /Volumes/helmut/Destination_Folder_Name/my_job_file.mxf\",\"values\":[\"{job.source}\"],\"value\":\"{stream.variable.assetLinkJobsPath}\"},\"Priority\":{\"type\":\"INTEGER\",\"description\":\"(Optional: Set between 0 and 10, with 0 as the highest priority. Default is -1, which means original value defined in profile)\",\"variableName\":\"priority\",\"placeholder\":\"-1\",\"values\":[\"-1\"],\"value\":\"-1\"},\"Render nodes\":{\"type\":\"STRING\",\"description\":\"Comma-separated list of names of the rendernode(s) to pick up the job (optional)\",\"variableName\":\"renderNodes\",\"placeholder\":\"rendernode1 or render*\",\"value\":\"{user.name}\"},\"Add current marker\":{\"type\":\"BOOLEAN\",\"description\":\"If enabled, markers (if existing) are passed on to the job\",\"variableName\":\"addMarker\",\"values\":[\"true\"],\"value\":false},\"Add current metadata\":{\"type\":\"BOOLEAN\",\"description\":\"If enabled, metadata from the current job is passed on to the new job and metadata set of triggered profile will be ignored. If disabled the metadata set assigned to the triggered profile will be used in the new job.\",\"variableName\":\"addMetadata\",\"values\":[\"true\"],\"value\":true}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}},\"subtitle\":\"RSS Copy Offline Assets\"}},\"3\":{\"top\":20,\"left\":925,\"properties\":{\"description\":\"Will trigger indexing the project file in Cosmo - V3 requires Helmut Client 4.2.0.28 or above\",\"title\":\"Cosmo Project File Index Action V3\",\"nodeUUID\":\"d818d967-1e1b-41e0-9155-f26c9e01f334\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.cosmo.CosmoProjectFileIndexActionImplV3\",\"className\":\"actionNode\",\"parameter\":{\"Project ID\":{\"type\":\"STRING\",\"description\":\"Must contain the project ID\",\"variableName\":\"projectId\",\"values\":[\"{project.id}\"],\"value\":\"{project.id}\"},\"Advanced indexing\":{\"type\":\"BOOLEAN\",\"description\":\"Will index the project in advanced mode\",\"variableName\":\"advancedIndexing\",\"values\":[\"false\"],\"value\":false},\"Trigger INDEXED_ASSET\":{\"type\":\"BOOLEAN\",\"description\":\"Will trigger INDEXED_ASSET for new (unknown) assets\",\"variableName\":\"triggerIndexedAssetStream\",\"values\":[\"false\"],\"value\":false},\"Trigger UNINDEXED_ASSET\":{\"type\":\"BOOLEAN\",\"description\":\"Will trigger UNINDEXED_ASSET for removed assets\",\"variableName\":\"triggerUnindexedAssetStream\",\"value\":false}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"4\":{\"top\":1065,\"left\":9180,\"properties\":{\"description\":\"Will move an asset within Cosmo (for all projects)\",\"title\":\"Cosmo Change Asset Action V3\",\"nodeUUID\":\"e8c77bc8-58fa-4ffd-8cdd-aae5125c5b5a\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.cosmo.CosmoChangeAssetActionImplV3\",\"className\":\"actionNode\",\"parameter\":{\"Old path\":{\"type\":\"STRING\",\"description\":\"Old path of the asset (incl. extension)\",\"variableName\":\"oldAssetPath\",\"placeholder\":\"{job.destination} or /Volumes/helmut/folder/asset1.mxf\",\"values\":[\"{job.source}\"],\"value\":\"{node.result.a191ab19-0f77-4546-849a-aceaae68995a}\"},\"New path\":{\"type\":\"STRING\",\"description\":\"New path of the asset (incl. extension)\",\"variableName\":\"newAssetPath\",\"placeholder\":\"{job.destination} or /Volumes/helmut/folder/asset1.mxf\",\"values\":[\"{job.destination}\"],\"value\":\"{node.result.fc3f620f-800f-49c4-878a-068413b26fad}\"},\"Autosync\":{\"type\":\"BOOLEAN\",\"variableName\":\"autosync\",\"values\":[\"false\"],\"value\":true},\"Skip metadata sync\":{\"type\":\"BOOLEAN\",\"description\":\"If enabled, metadata sync will be skipped in panel\",\"variableName\":\"skipMetadata\",\"values\":[\"false\"],\"value\":false},\"Skip markers sync\":{\"type\":\"BOOLEAN\",\"description\":\"If enabled, markers sync will be skipped in panel\",\"variableName\":\"skipMarkers\",\"values\":[\"false\"],\"value\":false}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"5\":{\"top\":330,\"left\":5735,\"properties\":{\"description\":\"Will sleep for an amount of milliseconds\",\"title\":\"Sleep Action\",\"nodeUUID\":\"6ced8767-1537-400c-b60e-5b54ecc78f9e\",\"uncontained\":false,\"class\":\"nodes.actions.general.SleepActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Milliseconds\":{\"type\":\"INTEGER\",\"description\":\"Amount of milliseconds that the node waits for\",\"variableName\":\"ms\",\"placeholder\":\"1000\",\"values\":[\"100\"],\"value\":\"123\"}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"6\":{\"top\":950,\"left\":9675,\"properties\":{\"description\":\"Use it to make a failed node be successful to ensure a whole stream is successful\",\"title\":\"Success Action\",\"nodeUUID\":\"a143da0f-df27-463c-89ce-0566acce5882\",\"uncontained\":false,\"class\":\"nodes.actions.general.SuccessActionImpl\",\"className\":\"actionNode\",\"parameter\":{},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"7\":{\"top\":1165,\"left\":9665,\"properties\":{\"description\":\"Will open an alert dialog in Premiere\",\"title\":\"Premiere Alert Dialog Action V2\",\"nodeUUID\":\"ab8d76af-5607-4c11-ac8c-fffbaf265fb0\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.premiere.PremiereAlertActionV2\",\"className\":\"actionNode\",\"parameter\":{\"Message\":{\"type\":\"LONG_STRING\",\"variableName\":\"message\",\"value\":\"Fehler bei \\\"{job.source}\\\" - Asset nicht zu verändern\"},\"Successful on timeout\":{\"type\":\"BOOLEAN\",\"variableName\":\"successfulOnTimeout\",\"values\":[\"false\"],\"value\":false},\"Timeout (in seconds)\":{\"type\":\"INTEGER\",\"variableName\":\"timeout\",\"values\":[\"30\"],\"value\":\"10\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"8\":{\"top\":155,\"left\":4335,\"properties\":{\"description\":\"Use it to make a failed node be successful to ensure a whole stream is successful\",\"title\":\"Success Action\",\"nodeUUID\":\"379fe3cb-b788-498d-a2da-4ea57574cd59\",\"uncontained\":false,\"class\":\"nodes.actions.general.SuccessActionImpl\",\"className\":\"actionNode\",\"parameter\":{},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"9\":{\"top\":265,\"left\":4330,\"properties\":{\"description\":\"Will always fail\",\"title\":\"Fail Action\",\"nodeUUID\":\"125dc845-ca70-4db4-b17d-a7ab45005134\",\"uncontained\":false,\"class\":\"nodes.actions.general.FailActionWithMessageImpl\",\"className\":\"actionNode\",\"parameter\":{\"Message\":{\"type\":\"STRING\",\"description\":\"Optional error message to return\",\"variableName\":\"msg\",\"value\":\"RSS Copy Offline Assets fehlgeschlagen\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"10\":{\"top\":800,\"left\":2610,\"properties\":{\"description\":\"Will check if one or more folders exist\",\"title\":\"Folder Exists Condition\",\"nodeUUID\":\"db10bb82-a446-4d9d-b338-0335c045b8d5\",\"uncontained\":false,\"class\":\"nodes.conditions.folder.FolderMultipleExistsConditionImpl\",\"className\":\"conditionNode\",\"parameter\":{\"Condition\":{\"type\":\"ENUM\",\"variableName\":\"conditionType\",\"values\":[\"DOES_EXIST\",\"DOES_NOT_EXIST\"],\"value\":\"DOES_EXIST\"},\"Folderpath\":{\"type\":\"ARRAY_STRING\",\"description\":\"Path to the folder to be checked\",\"variableName\":\"folderPaths\",\"placeholder\":\"H:\\\\check_that_folder\",\"value\":[\"{stream.variable.assetLinkJobsPath}\"]}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"11\":{\"top\":1060,\"left\":6500,\"properties\":{\"description\":\"Will set a temporary custom stream variable\",\"title\":\"Stream Set Temporary Variable Action\",\"nodeUUID\":\"e3f8c087-cc37-47fa-8ae6-9f60e2b76e5f\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Variable name\":{\"type\":\"STRING\",\"description\":\"Name of the temporary variable to be set\",\"variableName\":\"variableName\",\"placeholder\":\"my_variable\",\"value\":\"datapath\"},\"Variable value\":{\"type\":\"STRING\",\"description\":\"Name of the value to be used for the temporary variable\",\"variableName\":\"variableValue\",\"placeholder\":\"my_value_name\",\"value\":\"{path.map.to.win.{job.source}}\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"12\":{\"top\":1095,\"left\":1575,\"properties\":{\"description\":\"Extract values from JSON payloads\",\"title\":\"Json Extract Action V2\",\"nodeUUID\":\"a3a39396-19d1-4136-8016-3d297649e16b\",\"uncontained\":false,\"class\":\"nodes.actions.general.JsonExtractActionV2\",\"className\":\"actionNode\",\"parameter\":{\"Payload\":{\"type\":\"LONG_STRING\",\"description\":\"The JSON payload (object)\",\"variableName\":\"payload\",\"placeholder\":\"{\\\"info\\\":{\\\"users\\\":[{\\\"name\\\":\\\"Peter Griffin\\\"}]}}\",\"value\":\"{stream.variable.esPayload}\"},\"Key path\":{\"type\":\"STRING\",\"description\":\"The path (key) to extract\",\"variableName\":\"path\",\"placeholder\":\"info.users[0].name\",\"value\":\"count\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"13\":{\"top\":1438,\"left\":1568,\"properties\":{\"description\":\"Will match input against one or multiple patterns (NB: This node is functionally equivalent to the \\\"Match Multiple Patterns Condition\\\" and may be removed in upcoming Helmut-releases)\",\"title\":\"Wildcard Condition V3\",\"nodeUUID\":\"f21f34a9-4d80-4470-bd06-72122fa72836\",\"uncontained\":false,\"class\":\"nodes.conditions.general.WildcardMultipleConditionImplV3\",\"className\":\"conditionNode\",\"parameter\":{\"Condition\":{\"type\":\"ENUM\",\"variableName\":\"conditionType\",\"values\":[\"IS\",\"IS_NOT\",\"CONTAINS\",\"CONTAINS_NOT\",\"STARTS_WITH\",\"STARTS_NOT_WITH\",\"ENDS_WITH\",\"ENDS_NOT_WITH\",\"IS_EQUAL\",\"IS_GREATER_THAN\",\"IS_SMALLER_THAN\",\"IS_GREATER_OR_EQUAL\",\"IS_SMALLER_OR_EQUAL\",\"MATCH\",\"MATCH_NOT\"],\"value\":\"IS_GREATER_THAN\"},\"Match All/One\":{\"type\":\"ENUM\",\"description\":\"If `ALL` is selected, input must match all patterns - for `ONE` a single match will make this condition pass\",\"variableName\":\"allOne\",\"placeholder\":\"ALL\",\"values\":[\"ALL\",\"ONE\"],\"value\":\"ONE\"},\"Input\":{\"type\":\"STRING\",\"description\":\"The string to be examined\",\"variableName\":\"against\",\"placeholder\":\"user1\",\"value\":\"{node.result.a3a39396-19d1-4136-8016-3d297649e16b}\"},\"Match pattern(s)\":{\"type\":\"ARRAY_STRING\",\"description\":\"The pattern(s) that the input should match\",\"variableName\":\"source\",\"placeholder\":\"{user.name}\",\"value\":[\"0\"]}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"14\":{\"top\":1240,\"left\":3895,\"properties\":{\"description\":\"Will open an alert dialog in Premiere\",\"title\":\"Premiere Alert Dialog Action V2\",\"nodeUUID\":\"adf5abc6-204d-4a4d-aa3a-f0cf2b97b712\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.premiere.PremiereAlertActionV2\",\"className\":\"actionNode\",\"parameter\":{\"Message\":{\"type\":\"LONG_STRING\",\"variableName\":\"message\",\"value\":\"Keine Aufgaben gefunden - keine Verarbeitung notwendig.\"},\"Successful on timeout\":{\"type\":\"BOOLEAN\",\"variableName\":\"successfulOnTimeout\",\"values\":[\"false\"],\"value\":false},\"Timeout (in seconds)\":{\"type\":\"INTEGER\",\"variableName\":\"timeout\",\"values\":[\"30\"],\"value\":\"30\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"15\":{\"top\":625,\"left\":3120,\"properties\":{\"description\":\"Will check if one or more folders are empty\",\"title\":\"Folder Empty Condition\",\"nodeUUID\":\"c1936342-f77c-4bef-b4a7-879a787fd5fc\",\"uncontained\":false,\"class\":\"nodes.conditions.folder.FolderMultipleEmptyConditionImpl\",\"className\":\"conditionNode\",\"parameter\":{\"Condition\":{\"type\":\"ENUM\",\"variableName\":\"conditionType\",\"values\":[\"IS_EMPTY\",\"IS_NOT_EMPTY\"],\"value\":\"IS_NOT_EMPTY\"},\"Folderpath\":{\"type\":\"ARRAY_STRING\",\"description\":\"Path to the folder to be checked\",\"variableName\":\"folderPaths\",\"placeholder\":\"H:\\\\check_that_folder\",\"value\":[\"{stream.variable.assetLinkJobsPath}\"]}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"16\":{\"top\":750,\"left\":5840,\"properties\":{\"description\":\"Will iterate over file paths of files found either recursively or on top level inside a given folder.\",\"title\":\"Get Files From Folder Action\",\"nodeUUID\":\"56a513cf-2ea5-477d-8ad0-083fd2c01585\",\"uncontained\":false,\"class\":\"nodes.actions.general.FolderGetFilesAction\",\"className\":\"actionNode\",\"parameter\":{\"Folder path\":{\"type\":\"STRING\",\"description\":\"Path, incl. folder name, that should be read out\",\"variableName\":\"folderPath\",\"placeholder\":\"/Volumes/helmut/Folder_Name\",\"value\":\"{stream.variable.assetLinkJobsPath}\"},\"Scan recursively\":{\"type\":\"BOOLEAN\",\"description\":\"If enabled, the scan will go beyond the root level and include all subdirectories.\",\"variableName\":\"usesRecursion\",\"values\":[\"false\"],\"value\":false}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"17\":{\"top\":295,\"left\":7205,\"properties\":{\"description\":\"Will open an alert dialog in Premiere\",\"title\":\"Premiere Alert Dialog Action V2\",\"nodeUUID\":\"2e96cc4c-355a-48e9-9b9d-c9c874e8852b\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.premiere.PremiereAlertActionV2\",\"className\":\"actionNode\",\"parameter\":{\"Message\":{\"type\":\"LONG_STRING\",\"variableName\":\"message\",\"value\":\"Alle fehlerhaften Assets wurden neu kopiert und im Hintergrund neu verknüpft. Bitte prüfen Sie Ihr Projekt.\"},\"Successful on timeout\":{\"type\":\"BOOLEAN\",\"variableName\":\"successfulOnTimeout\",\"values\":[\"false\"],\"value\":false},\"Timeout (in seconds)\":{\"type\":\"INTEGER\",\"variableName\":\"timeout\",\"values\":[\"30\"],\"value\":\"30\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"18\":{\"top\":290,\"left\":7610,\"properties\":{\"description\":\"Use it to make a failed node be successful to ensure a whole stream is successful\",\"title\":\"Success Action\",\"nodeUUID\":\"33ed5a7b-79ec-4051-808b-f4b2c2d69fe1\",\"uncontained\":false,\"class\":\"nodes.actions.general.SuccessActionImpl\",\"className\":\"actionNode\",\"parameter\":{},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"19\":{\"top\":1060,\"left\":7265,\"properties\":{\"description\":\"Will set a temporary custom stream variable\",\"title\":\"Stream Set Temporary Variable Action\",\"nodeUUID\":\"ec0526fd-30cf-4302-a670-54c8d93aabad\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Variable name\":{\"type\":\"STRING\",\"description\":\"Name of the temporary variable to be set\",\"variableName\":\"variableName\",\"placeholder\":\"my_variable\",\"value\":\"jpayload\"},\"Variable value\":{\"type\":\"STRING\",\"description\":\"Name of the value to be used for the temporary variable\",\"variableName\":\"variableValue\",\"placeholder\":\"my_value_name\",\"value\":\"{file.content.{stream.variable.datapath}}\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"20\":{\"top\":1060,\"left\":8015,\"properties\":{\"description\":\"Extract values from JSON payloads\",\"title\":\"Json Extract Action V2\",\"nodeUUID\":\"a191ab19-0f77-4546-849a-aceaae68995a\",\"uncontained\":false,\"class\":\"nodes.actions.general.JsonExtractActionV2\",\"className\":\"actionNode\",\"parameter\":{\"Payload\":{\"type\":\"LONG_STRING\",\"description\":\"The JSON payload (object)\",\"variableName\":\"payload\",\"placeholder\":\"{\\\"info\\\":{\\\"users\\\":[{\\\"name\\\":\\\"Peter Griffin\\\"}]}}\",\"value\":\"{stream.variable.jpayload}\"},\"Key path\":{\"type\":\"STRING\",\"description\":\"The path (key) to extract\",\"variableName\":\"path\",\"placeholder\":\"info.users[0].name\",\"value\":\"src\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"21\":{\"top\":1060,\"left\":8390,\"properties\":{\"description\":\"Extract values from JSON payloads\",\"title\":\"Json Extract Action V2\",\"nodeUUID\":\"fc3f620f-800f-49c4-878a-068413b26fad\",\"uncontained\":false,\"class\":\"nodes.actions.general.JsonExtractActionV2\",\"className\":\"actionNode\",\"parameter\":{\"Payload\":{\"type\":\"LONG_STRING\",\"description\":\"The JSON payload (object)\",\"variableName\":\"payload\",\"placeholder\":\"{\\\"info\\\":{\\\"users\\\":[{\\\"name\\\":\\\"Peter Griffin\\\"}]}}\",\"value\":\"{stream.variable.jpayload}\"},\"Key path\":{\"type\":\"STRING\",\"description\":\"The path (key) to extract\",\"variableName\":\"path\",\"placeholder\":\"info.users[0].name\",\"value\":\"dest\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"22\":{\"top\":1060,\"left\":7640,\"properties\":{\"description\":\"Extract values from JSON payloads\",\"title\":\"Json Extract Action V2\",\"nodeUUID\":\"c86cfbb7-da59-4aa2-8fd8-925f05eab55a\",\"uncontained\":false,\"class\":\"nodes.actions.general.JsonExtractActionV2\",\"className\":\"actionNode\",\"parameter\":{\"Payload\":{\"type\":\"LONG_STRING\",\"description\":\"The JSON payload (object)\",\"variableName\":\"payload\",\"placeholder\":\"{\\\"info\\\":{\\\"users\\\":[{\\\"name\\\":\\\"Peter Griffin\\\"}]}}\",\"value\":\"{stream.variable.jpayload}\"},\"Key path\":{\"type\":\"STRING\",\"description\":\"The path (key) to extract\",\"variableName\":\"path\",\"placeholder\":\"info.users[0].name\",\"value\":\"fcopy\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"23\":{\"top\":1060,\"left\":8780,\"properties\":{\"description\":\"Will match input against one or multiple patterns (NB: This node is functionally equivalent to the \\\"Match Multiple Patterns Condition\\\" and may be removed in upcoming Helmut-releases)\",\"title\":\"Wildcard Condition V3\",\"nodeUUID\":\"e3372a75-4d06-442b-b85b-f3da3e56e4c6\",\"uncontained\":false,\"class\":\"nodes.conditions.general.WildcardMultipleConditionImplV3\",\"className\":\"conditionNode\",\"parameter\":{\"Condition\":{\"type\":\"ENUM\",\"variableName\":\"conditionType\",\"values\":[\"IS\",\"IS_NOT\",\"CONTAINS\",\"CONTAINS_NOT\",\"STARTS_WITH\",\"STARTS_NOT_WITH\",\"ENDS_WITH\",\"ENDS_NOT_WITH\",\"IS_EQUAL\",\"IS_GREATER_THAN\",\"IS_SMALLER_THAN\",\"IS_GREATER_OR_EQUAL\",\"IS_SMALLER_OR_EQUAL\",\"MATCH\",\"MATCH_NOT\"],\"value\":\"IS\"},\"Match All/One\":{\"type\":\"ENUM\",\"description\":\"If `ALL` is selected, input must match all patterns - for `ONE` a single match will make this condition pass\",\"variableName\":\"allOne\",\"placeholder\":\"ALL\",\"values\":[\"ALL\",\"ONE\"],\"value\":\"ALL\"},\"Input\":{\"type\":\"STRING\",\"description\":\"The string to be examined\",\"variableName\":\"against\",\"placeholder\":\"user1\",\"value\":\"{node.result.c86cfbb7-da59-4aa2-8fd8-925f05eab55a}\"},\"Match pattern(s)\":{\"type\":\"ARRAY_STRING\",\"description\":\"The pattern(s) that the input should match\",\"variableName\":\"source\",\"placeholder\":\"{user.name}\",\"value\":[\"true\"]}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"25\":{\"top\":295,\"left\":6805,\"properties\":{\"description\":\"Will sleep for an amount of milliseconds\",\"title\":\"Sleep Action\",\"nodeUUID\":\"bed71839-1e81-4cae-ba32-2afd57ec584d\",\"uncontained\":false,\"class\":\"nodes.actions.general.SleepActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Milliseconds\":{\"type\":\"INTEGER\",\"description\":\"Amount of milliseconds that the node waits for\",\"variableName\":\"ms\",\"placeholder\":\"1000\",\"values\":[\"100\"],\"value\":\"4000\"}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"26\":{\"top\":1060,\"left\":6870,\"properties\":{\"description\":\"Will check if one or more files exist\",\"title\":\"File Exists Condition\",\"nodeUUID\":\"20352757-6cd3-483c-a04e-cd612fcd2382\",\"uncontained\":false,\"class\":\"nodes.conditions.file.FileMultipleExistsConditionImpl\",\"className\":\"conditionNode\",\"parameter\":{\"Condition\":{\"type\":\"ENUM\",\"variableName\":\"conditionType\",\"values\":[\"DOES_EXIST\",\"DOES_NOT_EXIST\"],\"value\":\"DOES_EXIST\"},\"Filepath\":{\"type\":\"ARRAY_STRING\",\"description\":\"Complete file path including extension\",\"variableName\":\"filePaths\",\"placeholder\":\"H:\\\\Folder_name\\\\does_this_file_exist.mxf\",\"value\":[\"{stream.variable.datapath}\"]}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"27\":{\"top\":1830,\"left\":9180,\"properties\":{\"description\":\"Will delete one or more files\",\"title\":\"File Delete Action\",\"nodeUUID\":\"025332fc-a229-4cec-9127-ed9f1fbf29e0\",\"uncontained\":false,\"class\":\"nodes.actions.delete.FileMultipleDeleteActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"File path\":{\"type\":\"ARRAY_STRING\",\"description\":\"Complete path to the file to be deleted (incl. extension)\",\"variableName\":\"filePaths\",\"placeholder\":\"H:\\\\Source_Folder_Name\\\\text.txt\",\"value\":[\"{stream.variable.datapath}\"]}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}},\"subtitle\":\"Job Löschen sonst Endlos-Schleife\"}},\"28\":{\"top\":20,\"left\":445,\"properties\":{\"description\":\"Will set a temporary custom stream variable\",\"title\":\"Stream Set Temporary Variable Action\",\"nodeUUID\":\"606d5bfb-a533-421a-b309-d86b952b0340\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Variable name\":{\"type\":\"STRING\",\"description\":\"Name of the temporary variable to be set\",\"variableName\":\"variableName\",\"placeholder\":\"my_variable\",\"value\":\"morePath\"},\"Variable value\":{\"type\":\"STRING\",\"description\":\"Name of the value to be used for the temporary variable\",\"variableName\":\"variableValue\",\"placeholder\":\"my_value_name\",\"value\":\"[\\\"D:\\\\\\\\Helmut_Vorlagen\\\"]\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}},\"subtitle\":\"Möglichkeit  weitere Prüf-Pfade an das ExtendSkript weiterzugeben (WhiteList = Pfade wo Assets liegen können ohne als Fehlerhaft erkannt zu werden).   T:\\\\Produktion\\\\RSS ist schon als Std Pfad definiert. \"}},\"29\":{\"top\":890,\"left\":125,\"properties\":{\"description\":\"Will execute ExtendScript in Premiere (panel required)\",\"title\":\"Job Execute ExtendScript In Premiere Action V2\",\"nodeUUID\":\"bfe2447d-6d62-4552-92e3-3f4e8c2e86b2\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2\",\"className\":\"actionNode\",\"parameter\":{\"ExtendScript\":{\"type\":\"LONG_STRING\",\"variableName\":\"extendScript\",\"value\":\"try{(function(){function jsonStringify(obj) { if (obj === null) return \\\"null\\\"; if (typeof obj === \\\"string\\\") return '\\\"' + obj.replace(/\\\\\\\\/g, '\\\\\\\\\\\\\\\\').replace(/\\\"/g, '\\\\\\\\\\\"') + '\\\"'; if (typeof obj === \\\"number\\\" || typeof obj === \\\"boolean\\\") return obj.toString(); if (obj instanceof Array) { var items = []; for (var i = 0; i < obj.length; i++) { items.push(jsonStringify(obj[i])); } return \\\"[\\\" + items.join(\\\",\\\") + \\\"]\\\"; } if (typeof obj === \\\"object\\\") { var props = []; for (var key in obj) { if (obj.hasOwnProperty(key)) { props.push(jsonStringify(key) + \\\":\\\" + jsonStringify(obj[key])); } } return \\\"{\\\" + props.join(\\\",\\\") + \\\"}\\\"; } return 'null'; }function collectAllMediaItems(folder, list) { for (var i = 0; i < folder.children.numItems; i++) { var item = folder.children[i]; if (item.type === ProjectItemType.BIN) { collectAllMediaItems(item, list); } else { if (item.getMediaPath && item.getMediaPath() !== \\\"\\\") { list.push(item); } } }}function checkAssetValidation(mediassets, allowedPaths) { var invalidAssets = []; function isPathAllowed(path) { for (var i = 0; i < allowedPaths.length; i++) { if (path.toLowerCase().indexOf(allowedPaths[i].toLowerCase()) !== -1) { return true; } } return false; } for (var i = 0; i < mediassets.length; i++) { if (!isPathAllowed(mediassets[i].getMediaPath())) { invalidAssets.push(mediassets[i]); } } return invalidAssets;}function getFilenameFromPath(fullPath) { var file = new File(fullPath); return file.name;}function copyFile(srcPath, destPath, overwrite, assetname) { var src = new File(srcPath); var dest = new File(destPath); var casset = { name: assetname, src: src.fsName, dest: dest.fsName, fcopy: false, finfo: '-' }; if (!src.exists) { casset.finfo = \\\"Quelldatei existiert nicht\\\"; return casset; } if (dest.exists && !overwrite) { casset.finfo= \\\"Zieldatei existiert bereits\\\"; return casset; } if (dest.exists && overwrite) { dest.remove(); } var result = src.copy(dest.fsName); if (result) { casset.fcopy = true; casset.finfo = \\\"Datei wurde kopiert\\\"; return casset; } else { casset.finfo = \\\"Fehler beim Kopieren\\\"; return casset; }}function copyAllBadAssets(assets){ var sep = (typeof Folder !== \\\"undefined\\\" && Folder.separator) ? Folder.separator : '/'; var projectFolder = new Folder(app.project.path).parent.parent; var destPath = projectFolder.fullName; destPath += sep + \\\"Medienimporte\\\"; var destFolder = new Folder(destPath); if (!destFolder.exists) destFolder.create(); var linkPath = projectFolder.fullName + sep + \\\"Asset_Link_Jobs\\\"; var linkFolder = new Folder(linkPath); if (!linkFolder.exists) linkFolder.create(); var srcFile = ''; var destFile = ''; var tasksList = []; var missingList = []; for (var j = 0; j < assets.length; j++) { srcFile = assets[j].getMediaPath(); destFile = destFolder.fsName + sep + getFilenameFromPath(assets[j].getMediaPath()); var copyresult = copyFile(srcFile, destFile, true, assets[j].name ); if (copyresult.fcopy) { var linkFile = new File(linkFolder.fsName + sep + copyresult.name + \\\".txt\\\");linkFile.encoding=\\\"UTF-8\\\";if (linkFile.open(\\\"w\\\")) { linkFile.write(jsonStringify(copyresult)); linkFile.close(); } else { alert(\\\"Konnte Asset_Link Job nicht schreiben: \\\" + linkFile.fsName); } tasksList.push(copyresult); } else { missingList.push(copyresult); } } return {tasksList: tasksList, missingList: missingList };}function logCassetListToProjectFolder(cassets, extraname, showOutput){ if (!app.project.path) { alert(\\\"Projekt wurde noch nicht gespeichert.\\\"); return; } var projectFolder = new Folder(app.project.path).parent; var now = new Date(); function pad(n) { return (n < 10 ? \\\"0\\\" : \\\"\\\") + n; } var timestamp = now.getFullYear() + \\\"-\\\" + pad(now.getMonth() + 1) + \\\"-\\\" + pad(now.getDate()) + \\\"_\\\" + pad(now.getHours()) + \\\"-\\\" + pad(now.getMinutes()) + \\\"-\\\" + pad(now.getSeconds()); var logfile = new File(projectFolder.fullName + \\\"/asset_log_\\\" + extraname + timestamp + \\\".txt\\\"); if (logfile.open(\\\"w\\\")) { logfile.writeln(\\\"Asset-Log \\\" + now.toLocaleString()); logfile.writeln(\\\"=========================================================\\\\n\\\"); for (var i = 0; i < cassets.length; i++) { var a = cassets[i]; logfile.writeln(\\\" Asset: \\\" + a.name); logfile.writeln(\\\" Quelle: \\\" + a.src); logfile.writeln(\\\" Ziel: \\\" + a.dest); if (a.fcopy) { logfile.writeln(\\\" Status Kopieren: Erfolgreich kopiert\\\"); } else { logfile.writeln(\\\" Status Kopieren: Fehler beim Kopieren\\\"); } logfile.writeln(\\\" Info: \\\" + a.finfo); logfile.writeln(\\\"\\\"); } logfile.close(); if (showOutput) { logfile.execute(); } } else { alert(\\\"Konnte Log-Datei nicht schreiben.\\\"); }}var projectItems = [];var jdata = {\\\"count\\\": 0};function doWorkflow(){collectAllMediaItems(app.project.rootItem, projectItems);if (projectItems.length > 0){ var allowedPaths = [\\\"T:\\\\\\\\Produktion\\\\\\\\RSS\\\", \\\"T:/Produktion/RSS\\\", \\\"/Produktion/RSS/LoRes/\\\", \\\"killphil/Premiere/Material/\\\",\\\"\\\\\\\\\\\\\\\\l-fslores1.adin.mdr.de\\\\\\\\rss\\\",\\\"\\\\\\\\\\\\\\\\l-fslores.adin.mdr.de\\\\\\\\RSS\\\\\\\\\\\"]; var badAssets = checkAssetValidation(projectItems, allowedPaths); var badlist = ''; for (var j = 0; j < badAssets.length; j++) { badlist = badlist + badAssets[j].name + \\\", \\\"; } if (badAssets.length > 0) { var confirmResult = confirm(\\\"Folgende Assets sind nicht auf dem RSS-Server zentral abgelegt:\\\"+'\\\\n\\\\n'+badlist+\\\"Soll ich eine Korrektur starten?\\\", true, \\\"Ungltige Asset-Pfade\\\"); if (confirmResult) { var result = copyAllBadAssets(badAssets); logCassetListToProjectFolder(result.tasksList,\\\"\\\", false); var alldata = {jdata: result.tasksList, count: result.tasksList.length}; jdata = jsonStringify(alldata); if (result.tasksList.length != badAssets.length) { alert(\\\"Nicht alle ungltigen Assets konnten korrigiert werden. Bitte prfen Sie die Log-Datei.\\\"); logCassetListToProjectFolder(result.missingList, \\\"missing_\\\", true); } } } else { alert(\\\"Alle Asset-Pfade sind gueltig und liegen zentral verfuegbar.\\\"); } }return jdata;}doWorkflow();jdata;})()}catch(e){alert(\\\"FEHLER: \\\"+e.toString());}\"}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}},\"subtitle\":\"Alte Version V4\"}},\"30\":{\"top\":430,\"left\":1450,\"properties\":{\"description\":\"Will set a temporary custom stream variable\",\"title\":\"Stream Set Temporary Variable Action\",\"nodeUUID\":\"2ea7c554-d0ce-4340-b005-ffaa8fb13f72\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Variable name\":{\"type\":\"STRING\",\"description\":\"Name of the temporary variable to be set\",\"variableName\":\"variableName\",\"placeholder\":\"my_variable\",\"value\":\"esPayload\"},\"Variable value\":{\"type\":\"STRING\",\"description\":\"Name of the value to be used for the temporary variable\",\"variableName\":\"variableValue\",\"placeholder\":\"my_value_name\",\"value\":\"{stream.last_result}\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"31\":{\"top\":455,\"left\":1970,\"properties\":{\"description\":\"Will open an alert dialog in Premiere\",\"title\":\"Premiere Alert Dialog Action V2\",\"nodeUUID\":\"e5392628-18e6-431a-8e35-f0f3ecfc9093\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.premiere.PremiereAlertActionV2\",\"className\":\"actionNode\",\"parameter\":{\"Message\":{\"type\":\"LONG_STRING\",\"variableName\":\"message\",\"value\":\"Fehler in der Skriptverarbeitung - Bitte RSS-Support kontaktieren Tel. 8159.\"},\"Successful on timeout\":{\"type\":\"BOOLEAN\",\"variableName\":\"successfulOnTimeout\",\"values\":[\"false\"],\"value\":false},\"Timeout (in seconds)\":{\"type\":\"INTEGER\",\"variableName\":\"timeout\",\"values\":[\"30\"],\"value\":\"30\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"33\":{\"top\":285,\"left\":445,\"properties\":{\"description\":\"Will set a temporary custom stream variable\",\"title\":\"Stream Set Temporary Variable Action\",\"nodeUUID\":\"cce046db-b8f2-4f2d-957e-2ee7bf279362\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"Variable name\":{\"type\":\"STRING\",\"description\":\"Name of the temporary variable to be set\",\"variableName\":\"variableName\",\"placeholder\":\"my_variable\",\"value\":\"assetLinkJobsPath\"},\"Variable value\":{\"type\":\"STRING\",\"description\":\"Name of the value to be used for the temporary variable\",\"variableName\":\"variableValue\",\"placeholder\":\"my_value_name\",\"value\":\"{path.parent.{project.parent}}\\\\Asset_Link_Jobs\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}},\"subtitle\":\"Pfad wo das Skript die .JSON Jobs ablegt - Achtung Pfad ist hart im Skript vercodet\"}},\"34\":{\"top\":1735,\"left\":8520,\"properties\":{\"description\":\"Use it to make a failed node be successful to ensure a whole stream is successful\",\"title\":\"Success Action\",\"nodeUUID\":\"64abcbf5-3f03-41c4-964c-4b10b921b672\",\"uncontained\":false,\"class\":\"nodes.actions.general.SuccessActionImpl\",\"className\":\"actionNode\",\"parameter\":{},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"35\":{\"top\":1735,\"left\":8135,\"properties\":{\"description\":\"Will open an alert dialog in Premiere\",\"title\":\"Premiere Alert Dialog Action V2\",\"nodeUUID\":\"970876e5-5d3c-4a9b-bcf9-01b87e1680dc\",\"uncontained\":false,\"class\":\"nodes.actions.helmut.premiere.PremiereAlertActionV2\",\"className\":\"actionNode\",\"parameter\":{\"Message\":{\"type\":\"LONG_STRING\",\"variableName\":\"message\",\"value\":\"Achtung Fehler bei \\\"{job.source}\\\" - Keine Verarbeitung. Eventuell Support verständigen.\"},\"Successful on timeout\":{\"type\":\"BOOLEAN\",\"variableName\":\"successfulOnTimeout\",\"values\":[\"false\"],\"value\":false},\"Timeout (in seconds)\":{\"type\":\"INTEGER\",\"variableName\":\"timeout\",\"values\":[\"30\"],\"value\":\"10\"}},\"globalParameter\":{},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"36\":{\"top\":1490,\"left\":9180,\"properties\":{\"description\":\"Will move a file (using a conflict rule if destination exist)\",\"title\":\"File Move Action\",\"nodeUUID\":\"dcf343b4-5779-4659-8b5e-4340c753d789\",\"uncontained\":false,\"class\":\"nodes.actions.move.FileMoveWithOptionsActionImpl\",\"className\":\"actionNode\",\"parameter\":{\"File path\":{\"type\":\"STRING\",\"description\":\"Complete path to the file to be moved (incl. extension)\",\"variableName\":\"filePath\",\"placeholder\":\"H:\\\\Source_Folder_Name\\\\text.txt\",\"value\":\"{stream.variable.datapath}\"},\"New file path\":{\"type\":\"STRING\",\"description\":\"New path of the moved file (incl. extension)\",\"variableName\":\"newFilePath\",\"placeholder\":\"H:\\\\Destination_Folder_Name\\\\text.txt\",\"value\":\"{path.parent.{project.parent}}\\\\Asset_Link_Jobs_Done\\\\{path.basename.{stream.variable.datapath}}\"},\"If new file exists\":{\"type\":\"ENUM\",\"description\":\"Defines conflict rule in case file already exists\",\"variableName\":\"conflictRule\",\"values\":[\"FAIL\",\"SKIP\",\"DELETE_EXISTING\",\"RENAME_EXISTING\",\"INCREMENT_NAME\"],\"value\":\"DELETE_EXISTING\"}},\"globalParameter\":{\"Async\":{\"type\":\"BOOLEAN\",\"variableName\":\"async\",\"value\":false}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"37\":{\"top\":705,\"left\":1445,\"properties\":{\"description\":\"Will match input against one or multiple patterns (NB: This node is functionally equivalent to the \\\"Match Multiple Patterns Condition\\\" and may be removed in upcoming Helmut-releases)\",\"title\":\"Wildcard Condition V3\",\"nodeUUID\":\"1896af7d-5525-4780-a3c3-1b024a1a4999\",\"uncontained\":false,\"class\":\"nodes.conditions.general.WildcardMultipleConditionImplV3\",\"className\":\"conditionNode\",\"parameter\":{\"Condition\":{\"type\":\"ENUM\",\"variableName\":\"conditionType\",\"values\":[\"IS\",\"IS_NOT\",\"CONTAINS\",\"CONTAINS_NOT\",\"STARTS_WITH\",\"STARTS_NOT_WITH\",\"ENDS_WITH\",\"ENDS_NOT_WITH\",\"IS_EQUAL\",\"IS_GREATER_THAN\",\"IS_SMALLER_THAN\",\"IS_GREATER_OR_EQUAL\",\"IS_SMALLER_OR_EQUAL\",\"MATCH\",\"MATCH_NOT\"],\"value\":\"IS\"},\"Match All/One\":{\"type\":\"ENUM\",\"description\":\"If `ALL` is selected, input must match all patterns - for `ONE` a single match will make this condition pass\",\"variableName\":\"allOne\",\"placeholder\":\"ALL\",\"values\":[\"ALL\",\"ONE\"],\"value\":\"ONE\"},\"Input\":{\"type\":\"STRING\",\"description\":\"The string to be examined\",\"variableName\":\"against\",\"placeholder\":\"user1\",\"value\":\"{stream.variable.esPayload}\"},\"Match pattern(s)\":{\"type\":\"ARRAY_STRING\",\"description\":\"The pattern(s) that the input should match\",\"variableName\":\"source\",\"placeholder\":\"{user.name}\",\"value\":[\"true\"]}},\"inputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"outputs\":{\"success\":{\"label\":\"Success\"},\"failed\":{\"label\":\"Fail\"}}}},\"startNode\":{\"left\":20,\"properties\":{\"class\":\"streamEvent\",\"className\":\"eventNode\",\"inputs\":{},\"outputs\":{\"trigger\":{\"label\":\"Trigger\"}},\"parameter\":{\"Event\":{\"type\":\"ENUM\",\"value\":\"CUSTOM_IO\",\"values\":[\"ADDED_ASSET\",\"ARCHIVE\",\"AUTOIMPORT\",\"BACKUP\",\"CONNECTED\",\"CONSOLIDATE\",\"COPY\",\"CREATE_CATEGORY\",\"CREATE_GROUP\",\"CREATE_PROJECT\",\"CREATE_USER\",\"CUSTOM_CO\",\"CUSTOM_FX\",\"CUSTOM_IO\",\"CUSTOM_USER\",\"DELETE\",\"DELETE_CATEGORY\",\"DELETE_GROUP\",\"DELETE_PROJECT\",\"DELETE_TEMPLATE\",\"DELETE_USER\",\"DISCONNECTED\",\"DUPLICATE_PROJECT\",\"EDIT_PROJECT\",\"EXPORT\",\"IMPORT\",\"IMPORT_PROJECT\",\"INDEXED_ASSET\",\"INDEXED_PROJECT\",\"MOVE\",\"OPEN_PROJECT\",\"PANEL_IMPORT\",\"POST_CREATE_PROJECT\",\"PRESTREAM\",\"RESTORE\",\"RESTORE_SAVE\",\"UNASSIGNED\",\"UNINDEXED_ASSET\",\"UNLOCK_PROJECT\",\"UPLOAD_TEMPLATE\",\"WATCHFOLDER\",\"WEB_EXPORT\",\"WEB_IMPORT\",\"WEB_UPLOAD\"],\"variableName\":\"streamEvent\"},\"Host\":{\"type\":\"ENUM\",\"value\":\"CLIENT\",\"values\":[\"SERVER\",\"CLIENT\"],\"variableName\":\"streamHost\"}},\"title\":\"Event trigger: Prüfe Projekt nach \\\"RSS-Offline\\\" Assets V2\",\"uncontained\":false,\"nodeUUID\":\"cea202df-b1e0-4d61-8098-1d69d9bd205b\"},\"top\":20}},\"links\":{\"0\":{\"fromOperator\":\"37\",\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":\"10\",\"toConnector\":\"trigger\",\"toSubConnector\":0},\"2\":{\"fromOperator\":\"37\",\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":\"10\",\"toConnector\":\"trigger\",\"toSubConnector\":0},\"3\":{\"fromOperator\":27,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":\"6\",\"toConnector\":\"trigger\",\"toSubConnector\":0},\"4\":{\"fromOperator\":\"startNode\",\"fromConnector\":\"trigger\",\"fromSubConnector\":0,\"toOperator\":28,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"5\":{\"fromOperator\":\"15\",\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":2,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"6\":{\"fromOperator\":4,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":7,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"7\":{\"fromOperator\":2,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":8,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"8\":{\"fromOperator\":12,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":13,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"9\":{\"fromOperator\":13,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":10,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"10\":{\"fromOperator\":2,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":9,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"12\":{\"fromOperator\":13,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":14,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"13\":{\"fromOperator\":\"26\",\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":19,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"14\":{\"fromOperator\":1,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":5,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"15\":{\"fromOperator\":15,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":14,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"16\":{\"fromOperator\":19,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":22,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"17\":{\"fromOperator\":0,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":31,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"18\":{\"fromOperator\":17,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":18,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"19\":{\"fromOperator\":17,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":18,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"20\":{\"fromOperator\":22,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":20,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"21\":{\"fromOperator\":1,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":16,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"22\":{\"fromOperator\":20,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":21,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"23\":{\"fromOperator\":16,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":11,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"24\":{\"fromOperator\":0,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":30,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"25\":{\"fromOperator\":\"16\",\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":\"25\",\"toConnector\":\"trigger\",\"toSubConnector\":0},\"26\":{\"fromOperator\":23,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":4,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"28\":{\"fromOperator\":10,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":15,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"29\":{\"fromOperator\":10,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":14,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"30\":{\"fromOperator\":12,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":31,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"31\":{\"fromOperator\":30,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":31,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"33\":{\"fromOperator\":\"3\",\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":\"0\",\"toConnector\":\"trigger\",\"toSubConnector\":0},\"35\":{\"fromOperator\":25,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":17,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"36\":{\"fromOperator\":11,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":26,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"37\":{\"fromOperator\":21,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":23,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"38\":{\"fromOperator\":23,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":6,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"39\":{\"fromOperator\":7,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":6,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"40\":{\"fromOperator\":28,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":33,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"41\":{\"fromOperator\":33,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":\"3\",\"toConnector\":\"trigger\",\"toSubConnector\":0},\"44\":{\"fromOperator\":19,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":35,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"45\":{\"fromOperator\":22,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":35,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"46\":{\"fromOperator\":35,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":34,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"47\":{\"fromOperator\":35,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":34,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"48\":{\"fromOperator\":20,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":35,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"49\":{\"fromOperator\":21,\"fromConnector\":\"failed\",\"fromSubConnector\":0,\"toOperator\":35,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"53\":{\"fromOperator\":4,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":36,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"54\":{\"fromOperator\":36,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":6,\"toConnector\":\"trigger\",\"toSubConnector\":0},\"55\":{\"fromOperator\":30,\"fromConnector\":\"success\",\"fromSubConnector\":0,\"toOperator\":37,\"toConnector\":\"trigger\",\"toSubConnector\":0}},\"operatorTypes\":{},\"grid\":{\"height\":9000,\"width\":16000}}",
  "deprecated": false,
  "nodeList": [
    {
      "class": "nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2",
      "deprecated": false,
      "properties": {
        "extendScript": "try{(function(){var morePaths = '{stream.variable.morePaths}';var hardPaths = [\"T:\\\\Produktion\\\\RSS\", \"T:/Produktion/RSS\", \"/Produktion/RSS/LoRes/\", \"killphil/Premiere/Material/\",\"\\\\\\\\l-fslores1.adin.mdr.de\\\\rss\",\"\\\\\\\\l-fslores.adin.mdr.de\\\\RSS\\\\\"]; var allowedPaths = hardPaths.concat(morePaths);function jsonStringify(obj) { if (obj === null) return \"null\"; if (typeof obj === \"string\") return '\"' + obj.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') + '\"'; if (typeof obj === \"number\" || typeof obj === \"boolean\") return obj.toString(); if (obj instanceof Array) { var items = []; for (var i = 0; i < obj.length; i++) { items.push(jsonStringify(obj[i])); } return \"[\" + items.join(\",\") + \"]\"; } if (typeof obj === \"object\") { var props = []; for (var key in obj) { if (obj.hasOwnProperty(key)) { props.push(jsonStringify(key) + \":\" + jsonStringify(obj[key])); } } return \"{\" + props.join(\",\") + \"}\"; } return 'null'; }function collectAllMediaItems(folder, list) { for (var i = 0; i < folder.children.numItems; i++) { var item = folder.children[i]; if (item.type === ProjectItemType.BIN) { collectAllMediaItems(item, list); } else { if (item.getMediaPath && item.getMediaPath() !== \"\") { list.push(item); } } }}function checkAssetValidation(mediassets, allowedPaths) { var invalidAssets = []; function isPathAllowed(path) { for (var i = 0; i < allowedPaths.length; i++) { if (path.toLowerCase().indexOf(allowedPaths[i].toLowerCase()) !== -1) { return true; } } return false; } for (var i = 0; i < mediassets.length; i++) { if (!isPathAllowed(mediassets[i].getMediaPath())) { invalidAssets.push(mediassets[i]); } } return invalidAssets;}function getFilenameFromPath(fullPath) { var file = new File(fullPath); return file.name;}function copyFile(srcPath, destPath, overwrite, assetname) { var src = new File(srcPath); var dest = new File(destPath); var casset = { name: assetname, src: src.fsName, dest: dest.fsName, fcopy: false, finfo: '-' }; if (!src.exists) { casset.finfo = \"Quelldatei existiert nicht\"; return casset; } if (dest.exists && !overwrite) { casset.finfo= \"Zieldatei existiert bereits\"; return casset; } if (dest.exists && overwrite) { dest.remove(); } casset.fcopy = true; casset.finfo = \"Simuliertes Kopieren keine echte Kopie durchgeführt\"; return casset; }function copyAllBadAssets(assets){ var sep = (typeof Folder !== \"undefined\" && Folder.separator) ? Folder.separator : '/'; var projectFolder = new Folder(app.project.path).parent.parent; var destPath = projectFolder.fullName; destPath += sep + \"Medienimporte\"; var destFolder = new Folder(destPath); if (!destFolder.exists) destFolder.create(); var linkPath = projectFolder.fullName + sep + \"Asset_Link_Jobs\"; var linkFolder = new Folder(linkPath); if (!linkFolder.exists) linkFolder.create(); var srcFile = ''; var destFile = ''; var tasksList = []; var missingList = []; for (var j = 0; j < assets.length; j++) { srcFile = assets[j].getMediaPath(); destFile = destFolder.fsName + sep + getFilenameFromPath(assets[j].getMediaPath()); var copyresult = copyFile(srcFile, destFile, true, assets[j].name ); if (copyresult.fcopy) { var linkFile = new File(linkFolder.fsName + sep + copyresult.name + \".txt\"); linkFile.encoding = \"UTF-8\"; if (linkFile.open(\"w\")) { linkFile.write(jsonStringify(copyresult)); linkFile.close(); } else { alert(\"Konnte Asset_Link Job nicht schreiben: \" + linkFile.fsName); } tasksList.push(copyresult); } else { missingList.push(copyresult); } } return {tasksList: tasksList, missingList: missingList };}function logCassetListToProjectFolder(cassets, extraname, showOutput){ if (!app.project.path) { alert(\"Projekt wurde noch nicht gespeichert.\"); return; } var projectFolder = new Folder(app.project.path).parent; var now = new Date(); function pad(n) { return (n < 10 ? \"0\" : \"\") + n; } var timestamp = now.getFullYear() + \"-\" + pad(now.getMonth() + 1) + \"-\" + pad(now.getDate()) + \"_\" + pad(now.getHours()) + \"-\" + pad(now.getMinutes()) + \"-\" + pad(now.getSeconds()); var logfile = new File(projectFolder.fullName + \"/asset_log_\" + extraname + timestamp + \".txt\"); logfile.encoding = \"UTF-8\"; if (logfile.open(\"w\")) { logfile.writeln(\"Asset-Log \" + now.toLocaleString()); logfile.writeln(\"=========================================================\\n\"); for (var i = 0; i < cassets.length; i++) { var a = cassets[i]; logfile.writeln(\" Asset: \" + a.name); logfile.writeln(\" Quelle: \" + a.src); logfile.writeln(\" Ziel: \" + a.dest); if (a.fcopy) { logfile.writeln(\" Status Kopieren: Erfolgreich kopiert\"); } else { logfile.writeln(\" Status Kopieren: Fehler beim Kopieren\"); } logfile.writeln(\" Info: \" + a.finfo); logfile.writeln(\"\"); } logfile.close(); if (showOutput) { logfile.execute(); } } else { alert(\"Konnte Log-Datei nicht schreiben.\"); }}var projectItems = [];var jdata = {\"count\": 0};function doWorkflow(){collectAllMediaItems(app.project.rootItem, projectItems);if (projectItems.length > 0){ var badAssets = checkAssetValidation(projectItems, allowedPaths); var badlist = ''; for (var j = 0; j < badAssets.length; j++) { badlist = badlist + badAssets[j].name + \", \"; } if (badAssets.length > 0) { var confirmResult = confirm(\"Folgende Assets sind nicht auf dem RSS-Server zentral abgelegt:\"+'\\n\\n'+badlist+\"Soll ich eine Korrektur starten?\", true, \"Ungültige Asset-Pfade\"); if (confirmResult) { var result = copyAllBadAssets(badAssets); logCassetListToProjectFolder(result.tasksList,\"\", false); var alldata = {jdata: result.tasksList, count: result.tasksList.length}; jdata = jsonStringify(alldata); if (result.tasksList.length != badAssets.length) { alert(\"Nicht alle ungültigen Assets konnten korrigiert werden. Bitte prüfen Sie die Log-Datei.\"); logCassetListToProjectFolder(result.missingList, \"missing_\", true); } } } else { alert(\"Alle Asset-Pfade sind gültig und liegen zentral verfügbar.\"); return jdata; } }return jdata;}doWorkflow();return true;})()}catch(e){alert(\"FEHLER: \"+e.toString());}",
        "nodeUUID": "faa17f4f-b856-45bf-911b-e2815f3af416",
        "failedNodeUUID": "e5392628-18e6-431a-8e35-f0f3ecfc9093",
        "successNodeUUID": "2ea7c554-d0ce-4340-b005-ffaa8fb13f72"
      }
    },
    {
      "class": "nodes.actions.general.SplitStreamActionImpl",
      "deprecated": false,
      "properties": {
        "nodeUUID": "f78d6074-ecdf-4614-8d42-45bd13181305",
        "failedNodeUUID": "56a513cf-2ea5-477d-8ad0-083fd2c01585",
        "successNodeUUID": "6ced8767-1537-400c-b60e-5b54ecc78f9e"
      }
    },
    {
      "class": "nodes.actions.helmut.job.JobCreateJobActionImplV2",
      "deprecated": false,
      "properties": {
        "profileId": "68ee3742b43a1731e113b075",
        "jobName": "{project.name}",
        "sourceFile": "{stream.variable.assetLinkJobsPath}",
        "priority": -1,
        "renderNodes": "{user.name}",
        "addMarker": false,
        "addMetadata": true,
        "nodeUUID": "b8e100e1-e354-43c5-88a9-3314c427bd59",
        "failedNodeUUID": "125dc845-ca70-4db4-b17d-a7ab45005134",
        "successNodeUUID": "379fe3cb-b788-498d-a2da-4ea57574cd59"
      }
    },
    {
      "class": "nodes.actions.helmut.cosmo.CosmoProjectFileIndexActionImplV3",
      "deprecated": false,
      "properties": {
        "projectId": "{project.id}",
        "advancedIndexing": false,
        "triggerIndexedAssetStream": false,
        "triggerUnindexedAssetStream": false,
        "nodeUUID": "d818d967-1e1b-41e0-9155-f26c9e01f334",
        "successNodeUUID": "faa17f4f-b856-45bf-911b-e2815f3af416"
      }
    },
    {
      "class": "nodes.actions.helmut.cosmo.CosmoChangeAssetActionImplV3",
      "deprecated": false,
      "properties": {
        "oldAssetPath": "{node.result.a191ab19-0f77-4546-849a-aceaae68995a}",
        "newAssetPath": "{node.result.fc3f620f-800f-49c4-878a-068413b26fad}",
        "autosync": true,
        "skipMetadata": false,
        "skipMarkers": false,
        "nodeUUID": "e8c77bc8-58fa-4ffd-8cdd-aae5125c5b5a",
        "failedNodeUUID": "ab8d76af-5607-4c11-ac8c-fffbaf265fb0",
        "successNodeUUID": "dcf343b4-5779-4659-8b5e-4340c753d789"
      }
    },
    {
      "class": "nodes.actions.general.SleepActionImpl",
      "deprecated": false,
      "properties": {
        "ms": 123,
        "nodeUUID": "6ced8767-1537-400c-b60e-5b54ecc78f9e"
      }
    },
    {
      "class": "nodes.actions.general.SuccessActionImpl",
      "deprecated": false,
      "properties": {
        "nodeUUID": "a143da0f-df27-463c-89ce-0566acce5882"
      }
    },
    {
      "class": "nodes.actions.helmut.premiere.PremiereAlertActionV2",
      "deprecated": false,
      "properties": {
        "message": "Fehler bei \"{job.source}\" - Asset nicht zu verändern",
        "successfulOnTimeout": false,
        "timeout": 10,
        "nodeUUID": "ab8d76af-5607-4c11-ac8c-fffbaf265fb0",
        "successNodeUUID": "a143da0f-df27-463c-89ce-0566acce5882"
      }
    },
    {
      "class": "nodes.actions.general.SuccessActionImpl",
      "deprecated": false,
      "properties": {
        "nodeUUID": "379fe3cb-b788-498d-a2da-4ea57574cd59"
      }
    },
    {
      "class": "nodes.actions.general.FailActionWithMessageImpl",
      "deprecated": false,
      "properties": {
        "msg": "RSS Copy Offline Assets fehlgeschlagen",
        "nodeUUID": "125dc845-ca70-4db4-b17d-a7ab45005134"
      }
    },
    {
      "class": "nodes.conditions.folder.FolderMultipleExistsConditionImpl",
      "deprecated": false,
      "properties": {
        "conditionType": "DOES_EXIST",
        "folderPaths": [
          "{stream.variable.assetLinkJobsPath}"
        ],
        "nodeUUID": "db10bb82-a446-4d9d-b338-0335c045b8d5",
        "failedNodeUUID": "adf5abc6-204d-4a4d-aa3a-f0cf2b97b712",
        "successNodeUUID": "c1936342-f77c-4bef-b4a7-879a787fd5fc"
      }
    },
    {
      "class": "nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl",
      "deprecated": false,
      "properties": {
        "variableName": "datapath",
        "variableValue": "{path.map.to.win.{job.source}}",
        "nodeUUID": "e3f8c087-cc37-47fa-8ae6-9f60e2b76e5f",
        "successNodeUUID": "20352757-6cd3-483c-a04e-cd612fcd2382"
      }
    },
    {
      "class": "nodes.actions.general.JsonExtractActionV2",
      "deprecated": false,
      "properties": {
        "payload": "{stream.variable.esPayload}",
        "path": "count",
        "nodeUUID": "a3a39396-19d1-4136-8016-3d297649e16b",
        "failedNodeUUID": "e5392628-18e6-431a-8e35-f0f3ecfc9093",
        "successNodeUUID": "f21f34a9-4d80-4470-bd06-72122fa72836"
      }
    },
    {
      "class": "nodes.conditions.general.WildcardMultipleConditionImplV3",
      "deprecated": false,
      "properties": {
        "conditionType": "IS_GREATER_THAN",
        "allOne": "ONE",
        "against": "{node.result.a3a39396-19d1-4136-8016-3d297649e16b}",
        "source": [
          "0"
        ],
        "nodeUUID": "f21f34a9-4d80-4470-bd06-72122fa72836",
        "failedNodeUUID": "adf5abc6-204d-4a4d-aa3a-f0cf2b97b712",
        "successNodeUUID": "db10bb82-a446-4d9d-b338-0335c045b8d5"
      }
    },
    {
      "class": "nodes.actions.helmut.premiere.PremiereAlertActionV2",
      "deprecated": false,
      "properties": {
        "message": "Keine Aufgaben gefunden - keine Verarbeitung notwendig.",
        "successfulOnTimeout": false,
        "timeout": 30,
        "nodeUUID": "adf5abc6-204d-4a4d-aa3a-f0cf2b97b712"
      }
    },
    {
      "class": "nodes.conditions.folder.FolderMultipleEmptyConditionImpl",
      "deprecated": false,
      "properties": {
        "conditionType": "IS_NOT_EMPTY",
        "folderPaths": [
          "{stream.variable.assetLinkJobsPath}"
        ],
        "nodeUUID": "c1936342-f77c-4bef-b4a7-879a787fd5fc",
        "failedNodeUUID": "adf5abc6-204d-4a4d-aa3a-f0cf2b97b712",
        "successNodeUUID": "b8e100e1-e354-43c5-88a9-3314c427bd59"
      }
    },
    {
      "class": "nodes.actions.general.FolderGetFilesAction",
      "deprecated": false,
      "properties": {
        "folderPath": "{stream.variable.assetLinkJobsPath}",
        "usesRecursion": false,
        "nodeUUID": "56a513cf-2ea5-477d-8ad0-083fd2c01585",
        "failedNodeUUID": "e3f8c087-cc37-47fa-8ae6-9f60e2b76e5f",
        "successNodeUUID": "bed71839-1e81-4cae-ba32-2afd57ec584d"
      }
    },
    {
      "class": "nodes.actions.helmut.premiere.PremiereAlertActionV2",
      "deprecated": false,
      "properties": {
        "message": "Alle fehlerhaften Assets wurden neu kopiert und im Hintergrund neu verknüpft. Bitte prüfen Sie Ihr Projekt.",
        "successfulOnTimeout": false,
        "timeout": 30,
        "nodeUUID": "2e96cc4c-355a-48e9-9b9d-c9c874e8852b",
        "failedNodeUUID": "33ed5a7b-79ec-4051-808b-f4b2c2d69fe1",
        "successNodeUUID": "33ed5a7b-79ec-4051-808b-f4b2c2d69fe1"
      }
    },
    {
      "class": "nodes.actions.general.SuccessActionImpl",
      "deprecated": false,
      "properties": {
        "nodeUUID": "33ed5a7b-79ec-4051-808b-f4b2c2d69fe1"
      }
    },
    {
      "class": "nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl",
      "deprecated": false,
      "properties": {
        "variableName": "jpayload",
        "variableValue": "{file.content.{stream.variable.datapath}}",
        "nodeUUID": "ec0526fd-30cf-4302-a670-54c8d93aabad",
        "failedNodeUUID": "970876e5-5d3c-4a9b-bcf9-01b87e1680dc",
        "successNodeUUID": "c86cfbb7-da59-4aa2-8fd8-925f05eab55a"
      }
    },
    {
      "class": "nodes.actions.general.JsonExtractActionV2",
      "deprecated": false,
      "properties": {
        "payload": "{stream.variable.jpayload}",
        "path": "src",
        "nodeUUID": "a191ab19-0f77-4546-849a-aceaae68995a",
        "failedNodeUUID": "970876e5-5d3c-4a9b-bcf9-01b87e1680dc",
        "successNodeUUID": "fc3f620f-800f-49c4-878a-068413b26fad"
      }
    },
    {
      "class": "nodes.actions.general.JsonExtractActionV2",
      "deprecated": false,
      "properties": {
        "payload": "{stream.variable.jpayload}",
        "path": "dest",
        "nodeUUID": "fc3f620f-800f-49c4-878a-068413b26fad",
        "failedNodeUUID": "970876e5-5d3c-4a9b-bcf9-01b87e1680dc",
        "successNodeUUID": "e3372a75-4d06-442b-b85b-f3da3e56e4c6"
      }
    },
    {
      "class": "nodes.actions.general.JsonExtractActionV2",
      "deprecated": false,
      "properties": {
        "payload": "{stream.variable.jpayload}",
        "path": "fcopy",
        "nodeUUID": "c86cfbb7-da59-4aa2-8fd8-925f05eab55a",
        "failedNodeUUID": "970876e5-5d3c-4a9b-bcf9-01b87e1680dc",
        "successNodeUUID": "a191ab19-0f77-4546-849a-aceaae68995a"
      }
    },
    {
      "class": "nodes.conditions.general.WildcardMultipleConditionImplV3",
      "deprecated": false,
      "properties": {
        "conditionType": "IS",
        "allOne": "ALL",
        "against": "{node.result.c86cfbb7-da59-4aa2-8fd8-925f05eab55a}",
        "source": [
          "true"
        ],
        "nodeUUID": "e3372a75-4d06-442b-b85b-f3da3e56e4c6",
        "failedNodeUUID": "a143da0f-df27-463c-89ce-0566acce5882",
        "successNodeUUID": "e8c77bc8-58fa-4ffd-8cdd-aae5125c5b5a"
      }
    },
    {
      "class": "nodes.actions.general.SleepActionImpl",
      "deprecated": false,
      "properties": {
        "ms": 4000,
        "nodeUUID": "bed71839-1e81-4cae-ba32-2afd57ec584d",
        "successNodeUUID": "2e96cc4c-355a-48e9-9b9d-c9c874e8852b"
      }
    },
    {
      "class": "nodes.conditions.file.FileMultipleExistsConditionImpl",
      "deprecated": false,
      "properties": {
        "conditionType": "DOES_EXIST",
        "filePaths": [
          "{stream.variable.datapath}"
        ],
        "nodeUUID": "20352757-6cd3-483c-a04e-cd612fcd2382",
        "successNodeUUID": "ec0526fd-30cf-4302-a670-54c8d93aabad"
      }
    },
    {
      "class": "nodes.actions.delete.FileMultipleDeleteActionImpl",
      "deprecated": false,
      "properties": {
        "filePaths": [
          "{stream.variable.datapath}"
        ],
        "nodeUUID": "025332fc-a229-4cec-9127-ed9f1fbf29e0",
        "successNodeUUID": "a143da0f-df27-463c-89ce-0566acce5882"
      }
    },
    {
      "class": "nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl",
      "deprecated": false,
      "properties": {
        "variableName": "morePath",
        "variableValue": "[\"D:\\\\Helmut_Vorlagen\"]",
        "nodeUUID": "606d5bfb-a533-421a-b309-d86b952b0340",
        "successNodeUUID": "cce046db-b8f2-4f2d-957e-2ee7bf279362"
      }
    },
    {
      "class": "nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2",
      "deprecated": false,
      "properties": {
        "extendScript": "try{(function(){function jsonStringify(obj) { if (obj === null) return \"null\"; if (typeof obj === \"string\") return '\"' + obj.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') + '\"'; if (typeof obj === \"number\" || typeof obj === \"boolean\") return obj.toString(); if (obj instanceof Array) { var items = []; for (var i = 0; i < obj.length; i++) { items.push(jsonStringify(obj[i])); } return \"[\" + items.join(\",\") + \"]\"; } if (typeof obj === \"object\") { var props = []; for (var key in obj) { if (obj.hasOwnProperty(key)) { props.push(jsonStringify(key) + \":\" + jsonStringify(obj[key])); } } return \"{\" + props.join(\",\") + \"}\"; } return 'null'; }function collectAllMediaItems(folder, list) { for (var i = 0; i < folder.children.numItems; i++) { var item = folder.children[i]; if (item.type === ProjectItemType.BIN) { collectAllMediaItems(item, list); } else { if (item.getMediaPath && item.getMediaPath() !== \"\") { list.push(item); } } }}function checkAssetValidation(mediassets, allowedPaths) { var invalidAssets = []; function isPathAllowed(path) { for (var i = 0; i < allowedPaths.length; i++) { if (path.toLowerCase().indexOf(allowedPaths[i].toLowerCase()) !== -1) { return true; } } return false; } for (var i = 0; i < mediassets.length; i++) { if (!isPathAllowed(mediassets[i].getMediaPath())) { invalidAssets.push(mediassets[i]); } } return invalidAssets;}function getFilenameFromPath(fullPath) { var file = new File(fullPath); return file.name;}function copyFile(srcPath, destPath, overwrite, assetname) { var src = new File(srcPath); var dest = new File(destPath); var casset = { name: assetname, src: src.fsName, dest: dest.fsName, fcopy: false, finfo: '-' }; if (!src.exists) { casset.finfo = \"Quelldatei existiert nicht\"; return casset; } if (dest.exists && !overwrite) { casset.finfo= \"Zieldatei existiert bereits\"; return casset; } if (dest.exists && overwrite) { dest.remove(); } var result = src.copy(dest.fsName); if (result) { casset.fcopy = true; casset.finfo = \"Datei wurde kopiert\"; return casset; } else { casset.finfo = \"Fehler beim Kopieren\"; return casset; }}function copyAllBadAssets(assets){ var sep = (typeof Folder !== \"undefined\" && Folder.separator) ? Folder.separator : '/'; var projectFolder = new Folder(app.project.path).parent.parent; var destPath = projectFolder.fullName; destPath += sep + \"Medienimporte\"; var destFolder = new Folder(destPath); if (!destFolder.exists) destFolder.create(); var linkPath = projectFolder.fullName + sep + \"Asset_Link_Jobs\"; var linkFolder = new Folder(linkPath); if (!linkFolder.exists) linkFolder.create(); var srcFile = ''; var destFile = ''; var tasksList = []; var missingList = []; for (var j = 0; j < assets.length; j++) { srcFile = assets[j].getMediaPath(); destFile = destFolder.fsName + sep + getFilenameFromPath(assets[j].getMediaPath()); var copyresult = copyFile(srcFile, destFile, true, assets[j].name ); if (copyresult.fcopy) { var linkFile = new File(linkFolder.fsName + sep + copyresult.name + \".txt\");linkFile.encoding=\"UTF-8\";if (linkFile.open(\"w\")) { linkFile.write(jsonStringify(copyresult)); linkFile.close(); } else { alert(\"Konnte Asset_Link Job nicht schreiben: \" + linkFile.fsName); } tasksList.push(copyresult); } else { missingList.push(copyresult); } } return {tasksList: tasksList, missingList: missingList };}function logCassetListToProjectFolder(cassets, extraname, showOutput){ if (!app.project.path) { alert(\"Projekt wurde noch nicht gespeichert.\"); return; } var projectFolder = new Folder(app.project.path).parent; var now = new Date(); function pad(n) { return (n < 10 ? \"0\" : \"\") + n; } var timestamp = now.getFullYear() + \"-\" + pad(now.getMonth() + 1) + \"-\" + pad(now.getDate()) + \"_\" + pad(now.getHours()) + \"-\" + pad(now.getMinutes()) + \"-\" + pad(now.getSeconds()); var logfile = new File(projectFolder.fullName + \"/asset_log_\" + extraname + timestamp + \".txt\"); if (logfile.open(\"w\")) { logfile.writeln(\"Asset-Log \" + now.toLocaleString()); logfile.writeln(\"=========================================================\\n\"); for (var i = 0; i < cassets.length; i++) { var a = cassets[i]; logfile.writeln(\" Asset: \" + a.name); logfile.writeln(\" Quelle: \" + a.src); logfile.writeln(\" Ziel: \" + a.dest); if (a.fcopy) { logfile.writeln(\" Status Kopieren: Erfolgreich kopiert\"); } else { logfile.writeln(\" Status Kopieren: Fehler beim Kopieren\"); } logfile.writeln(\" Info: \" + a.finfo); logfile.writeln(\"\"); } logfile.close(); if (showOutput) { logfile.execute(); } } else { alert(\"Konnte Log-Datei nicht schreiben.\"); }}var projectItems = [];var jdata = {\"count\": 0};function doWorkflow(){collectAllMediaItems(app.project.rootItem, projectItems);if (projectItems.length > 0){ var allowedPaths = [\"T:\\\\Produktion\\\\RSS\", \"T:/Produktion/RSS\", \"/Produktion/RSS/LoRes/\", \"killphil/Premiere/Material/\",\"\\\\\\\\l-fslores1.adin.mdr.de\\\\rss\",\"\\\\\\\\l-fslores.adin.mdr.de\\\\RSS\\\\\"]; var badAssets = checkAssetValidation(projectItems, allowedPaths); var badlist = ''; for (var j = 0; j < badAssets.length; j++) { badlist = badlist + badAssets[j].name + \", \"; } if (badAssets.length > 0) { var confirmResult = confirm(\"Folgende Assets sind nicht auf dem RSS-Server zentral abgelegt:\"+'\\n\\n'+badlist+\"Soll ich eine Korrektur starten?\", true, \"Ungltige Asset-Pfade\"); if (confirmResult) { var result = copyAllBadAssets(badAssets); logCassetListToProjectFolder(result.tasksList,\"\", false); var alldata = {jdata: result.tasksList, count: result.tasksList.length}; jdata = jsonStringify(alldata); if (result.tasksList.length != badAssets.length) { alert(\"Nicht alle ungltigen Assets konnten korrigiert werden. Bitte prfen Sie die Log-Datei.\"); logCassetListToProjectFolder(result.missingList, \"missing_\", true); } } } else { alert(\"Alle Asset-Pfade sind gueltig und liegen zentral verfuegbar.\"); } }return jdata;}doWorkflow();jdata;})()}catch(e){alert(\"FEHLER: \"+e.toString());}",
        "nodeUUID": "bfe2447d-6d62-4552-92e3-3f4e8c2e86b2"
      }
    },
    {
      "class": "nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl",
      "deprecated": false,
      "properties": {
        "variableName": "esPayload",
        "variableValue": "{stream.last_result}",
        "nodeUUID": "2ea7c554-d0ce-4340-b005-ffaa8fb13f72",
        "failedNodeUUID": "e5392628-18e6-431a-8e35-f0f3ecfc9093",
        "successNodeUUID": "1896af7d-5525-4780-a3c3-1b024a1a4999"
      }
    },
    {
      "class": "nodes.actions.helmut.premiere.PremiereAlertActionV2",
      "deprecated": false,
      "properties": {
        "message": "Fehler in der Skriptverarbeitung - Bitte RSS-Support kontaktieren Tel. 8159.",
        "successfulOnTimeout": false,
        "timeout": 30,
        "nodeUUID": "e5392628-18e6-431a-8e35-f0f3ecfc9093"
      }
    },
    {
      "class": "nodes.actions.helmut.stream.StreamSetTemporaryVariableActionImpl",
      "deprecated": false,
      "properties": {
        "variableName": "assetLinkJobsPath",
        "variableValue": "{path.parent.{project.parent}}\\Asset_Link_Jobs",
        "nodeUUID": "cce046db-b8f2-4f2d-957e-2ee7bf279362",
        "successNodeUUID": "d818d967-1e1b-41e0-9155-f26c9e01f334"
      }
    },
    {
      "class": "nodes.actions.general.SuccessActionImpl",
      "deprecated": false,
      "properties": {
        "nodeUUID": "64abcbf5-3f03-41c4-964c-4b10b921b672"
      }
    },
    {
      "class": "nodes.actions.helmut.premiere.PremiereAlertActionV2",
      "deprecated": false,
      "properties": {
        "message": "Achtung Fehler bei \"{job.source}\" - Keine Verarbeitung. Eventuell Support verständigen.",
        "successfulOnTimeout": false,
        "timeout": 10,
        "nodeUUID": "970876e5-5d3c-4a9b-bcf9-01b87e1680dc",
        "failedNodeUUID": "64abcbf5-3f03-41c4-964c-4b10b921b672",
        "successNodeUUID": "64abcbf5-3f03-41c4-964c-4b10b921b672"
      }
    },
    {
      "class": "nodes.actions.move.FileMoveWithOptionsActionImpl",
      "deprecated": false,
      "properties": {
        "filePath": "{stream.variable.datapath}",
        "newFilePath": "{path.parent.{project.parent}}\\Asset_Link_Jobs_Done\\{path.basename.{stream.variable.datapath}}",
        "conflictRule": "DELETE_EXISTING",
        "nodeUUID": "dcf343b4-5779-4659-8b5e-4340c753d789",
        "successNodeUUID": "a143da0f-df27-463c-89ce-0566acce5882"
      }
    },
    {
      "class": "nodes.conditions.general.WildcardMultipleConditionImplV3",
      "deprecated": false,
      "properties": {
        "conditionType": "IS",
        "allOne": "ONE",
        "against": "{stream.variable.esPayload}",
        "source": [
          "true"
        ],
        "nodeUUID": "1896af7d-5525-4780-a3c3-1b024a1a4999",
        "failedNodeUUID": "db10bb82-a446-4d9d-b338-0335c045b8d5",
        "successNodeUUID": "db10bb82-a446-4d9d-b338-0335c045b8d5"
      }
    }
  ]
}

Findings im Stream

27
Fehleroffen
b8e100e1-e354-43c5-88a9-3314c427bd59
Create Job in Stream „Prüfe Projekt nach "RSS-Offline" Assets“: Profil-ID existiert nicht
Eine vorhandene Profil-ID über eine definierte, nicht leere Helmut-Variable referenzieren.
Warnungoffen
69e8d477eb54806a69625778
Custom-Stream „Prüfe Projekt nach "RSS-Offline" Assets“: Gruppenfreigabe und Aktivierungsstatus prüfen.
  • Mindestens eine Gruppen-ID ist im importierten Gruppenkatalog nicht auflösbar.
Zugeordnete Gruppen:
  • Nicht im Gruppenkatalog gefunden · ID: 6733958330d3840001b9f8f7
  • Nicht im Gruppenkatalog gefunden · ID: 619b6fe995dc0e00015cb575
Helmut-Dokumentation zur Streamfreigabe
Gruppenfreigabe und Aktivierung in Helmut kontrollieren. Leere Listen beweisen keine Unsichtbarkeit; unbekannte IDs können auch aus unterschiedlichen Exportständen stammen.
Warnungoffen
b8e100e1-e354-43c5-88a9-3314c427bd59
Create Job in Stream „Prüfe Projekt nach "RSS-Offline" Assets“: Best Practice: Die Profil-ID ist hart codiert.
Profil-ID in einer Helmut-Variable hinterlegen und z. B. {helmut.variable.JOB_PROFILE_ID} verwenden. Das erleichtert die zentrale Pflege und den Wechsel zwischen Systemen.
Warnungoffen
606d5bfb-a533-421a-b309-d86b952b0340
Node „StreamSetTemporaryVariableActionImpl“ in Stream „Prüfe Projekt nach "RSS-Offline" Assets“ enthält 1 Fundstelle(n) mit hart codiertem Pfad oder fester Pfadbasis.
Pfad-Fundstellen (1)
D:\\Helmut_Vorlagen
nodeList.27.properties.variableValue · Zeile 1 · Hart codierter Pfad
Die Pfadbasis zentral in einer Helmut- oder Store-Variable pflegen, z. B. {helmut.variable.MEDIA_ROOT}/Datei.mov.
offen
6ced8767-1537-400c-b60e-5b54ecc78f9e
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
fc3f620f-800f-49c4-878a-068413b26fad
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
dcf343b4-5779-4659-8b5e-4340c753d789
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
33ed5a7b-79ec-4051-808b-f4b2c2d69fe1
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
970876e5-5d3c-4a9b-bcf9-01b87e1680dc
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
f21f34a9-4d80-4470-bd06-72122fa72836
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
2e96cc4c-355a-48e9-9b9d-c9c874e8852b
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
ec0526fd-30cf-4302-a670-54c8d93aabad
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
bfe2447d-6d62-4552-92e3-3f4e8c2e86b2
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
f78d6074-ecdf-4614-8d42-45bd13181305
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
e8c77bc8-58fa-4ffd-8cdd-aae5125c5b5a
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
20352757-6cd3-483c-a04e-cd612fcd2382
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
025332fc-a229-4cec-9127-ed9f1fbf29e0
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
e3f8c087-cc37-47fa-8ae6-9f60e2b76e5f
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
bed71839-1e81-4cae-ba32-2afd57ec584d
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
64abcbf5-3f03-41c4-964c-4b10b921b672
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
56a513cf-2ea5-477d-8ad0-083fd2c01585
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
a143da0f-df27-463c-89ce-0566acce5882
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
a191ab19-0f77-4546-849a-aceaae68995a
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
c86cfbb7-da59-4aa2-8fd8-925f05eab55a
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
ab8d76af-5607-4c11-ac8c-fffbaf265fb0
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
e3372a75-4d06-442b-b85b-f3da3e56e4c6
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.
offen
a3a39396-19d1-4136-8016-3d297649e16b
Warnung UNREACHABLE_NODE
Node ist vom Start aus über keine gespeicherte Laufzeitverbindung erreichbar.
Konkrete Verknüpfungen und Ablaufabsicht prüfen. Erreichbarkeit wird nur bei eindeutigem, vollständigem Laufzeitgraphen beurteilt; Rekursion und fehlende Fehlerpfade sind Prüfhinweise.

Stream-Details

Extern-ID
69e8d477eb54806a69625778
Event
CUSTOM_IO
Nodes
36
Deprecated-Warnung
Nein
Variablen
0

Vorgang läuft

0 s · Bitte warten. Der Vorgang wird verarbeitet.

    0 s · Es wird keine neue Snapshot-Analyse gestartet.

    Willkommen im Helmut Analyzer

    Neu hier? Unter Info & Hilfe findest du einen Quickstart für den Export aus Helmut4, den Import deiner Konfiguration und die Auswertung. Dort sind auch unsere Prüfregeln und Best Practices erklärt.

    Info & Hilfe öffnen