{\r
- "title": "TESZT TQC TESZT check",\r
+ "title": "TQC check",\r
"active": true,\r
"startInTray": false,\r
"enableCustomMetadataId": true,\r
"$type": "UNCSource",\r
"filter": "avi,wav,mxf",\r
"local": {\r
- "address": "file://c:\\_video",\r
- "userName": "mediacube",\r
- "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
- "timeout": 1000\r
- },\r
- "remote": {\r
- "address": "ftp://10.10.1.100/TESZT/CHECK",\r
+ "address": "file://c:/_video",\r
"userName": "mediacube",\r
"password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
"timeout": 1000\r
"timeout": 1000\r
}\r
},\r
- {\r
+ {\r
"$type": "OctopusMetadata",\r
+ "disabled": true,\r
"server": {\r
"address": "http://10.10.1.27/services/rest/octopus/",\r
"timeout": 1000\r
],\r
"targets": [\r
{\r
- "label": "1",\r
- "processor": "FXPTargetProcessor",\r
- "subFolderFormat": "%IDROOT%-%TEXT%",\r
- "outputFormat": "%ID%-%TEXT%",\r
- "tag": "1",\r
- "disableFileVersioning": true,\r
- "enableOverride": true,\r
- "remote": {\r
- "address": "ftp://10.10.1.100/TESZT/1",\r
- "userName": "mediacube",\r
- "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
- "timeout": 1000\r
- }\r
- },\r
- {\r
- "label": "2",\r
- "processor": "FXPTargetProcessor",\r
- "subFolderFormat": "%IDROOT%-%TEXT%",\r
- "outputFormat": "%ID%-%TEXT%",\r
- "tag": "2",\r
- "disableFileVersioning": true,\r
- "enableOverride": true,\r
- "remote": {\r
- "address": "ftp://10.10.1.100/TESZT/2",\r
- "userName": "mediacube",\r
- "password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
- "timeout": 1000\r
- }\r
- }, \r
- {\r
- "label": "KESZ",\r
- "processor": "FXPTargetProcessor",\r
- "subFolderFormat": "%IDROOT%-%TEXT%",\r
- "outputFormat": "%ID%-%TEXT%",\r
- "tag": "KESZ",\r
+ "label": "Adáskész",\r
+ "processor": "FTPTargetProcessor",\r
+ "outputFormat": "%ID%",\r
+ "killDateDays": 5,\r
+ "saveSegments": true,\r
+ "tag": "Adáskész",\r
"disableFileVersioning": true,\r
"enableOverride": true,\r
- "deleteAfterCopy": true,\r
"remote": {\r
- "address": "ftp://10.10.1.100/TESZT/KESZ",\r
+ "address": "ftp://10.10.1.105/TESZT",\r
"userName": "mediacube",\r
"password": "Dn8t4gfHcK98o8hyPgLDhr5SgSji4JCxsfpMJsODikUp3nXgrM0UNCi45lLAK8ZOnmEneO44P9qpJ4QDqhctN6MxZodjJgdZTyoZKmSa+ECzEzLr/wPYNgxVaXrVotEy",\r
"timeout": 1000\r
}\r
}\r
+ \r
]\r
}\r
{\r
"title": "Development",\r
- "active": true,\r
+ "active": false,\r
"startInTray": false,\r
"enableCustomMetadataId": true,\r
"filter": "avi",\r
<None Include="Configuration\global.json">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
+ <None Include="Configuration\UJ-configuration-tqc-check.json">\r
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
+ </None>\r
<None Include="Connected Services\packages.config" />\r
<None Include="Maestro_TemporaryKey.pfx" />\r
<None Include="nlog.config">\r
if (MovieSegments == null)\r
return;\r
foreach (var s in MovieSegments) {\r
+ /*\r
//eredetileg a szegmens adatokkal ez nem jon le singlesegment eseten, de kell a mukodeshez\r
if (!trafficIDSelector.MultiSegment && s.MediaID == null)\r
s.MediaID = SelectedMetadata.ID;\r
+ */\r
//redefine\r
if (true.Equals(SelectedMetadata?.IsRedefine))\r
s.ReadOnly = SelectedMetadata.ID != s.MediaID;\r
if (readOnly && ArchiveMetadata != null && !SelectedMetadata.IsRedefine)\r
MsgBox.Warning("Az anyag már el van fogadva, a szegmens módosítás nem kerül mentésre. A szegmensek módosításához vissza kell vonni az anyag elfogadását az adástervező rendszerben.");\r
OpenFile(fileInfo, true, readOnly);\r
+ UpdateDefineSegmentsStatus();\r
Cursor.Current = Cursors.Default;\r
}\r
\r
// You can specify all the values or you can default the Build and Revision Numbers\r
// by using the '*' as shown below:\r
// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("2.0.9.4")]\r
-[assembly: AssemblyFileVersion("2.0.9.4")]\r
+[assembly: AssemblyVersion("2.0.9.5")]\r
+[assembly: AssemblyFileVersion("2.0.9.5")]\r
// Build Number\r
// Revision\r
//\r
-[assembly: AssemblyVersion("1.0.0.1")]\r
-[assembly: AssemblyFileVersion("1.0.0.1")]\r
+[assembly: AssemblyVersion("1.0.0.2")]\r
+[assembly: AssemblyFileVersion("1.0.0.2")]\r
// You can specify all the values or you can default the Build and Revision Numbers\r
// by using the '*' as shown below:\r
// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("1.0.0.2")]\r
-[assembly: AssemblyFileVersion("1.0.0.2")]\r
+[assembly: AssemblyVersion("1.0.0.3")]\r
+[assembly: AssemblyFileVersion("1.0.0.3")]\r
private void RefreshKeepPosition() {\r
int pos = dgTraffic.FirstDisplayedScrollingRowIndex;\r
RefreshResults();\r
- dgTraffic.FirstDisplayedScrollingRowIndex = pos;\r
+ //lehet ures a lista\r
+ try {\r
+ dgTraffic.FirstDisplayedScrollingRowIndex = pos;\r
+ } catch { }\r
}\r
\r
private void OnRefreshTrafficGrid(IMessage m) {\r
\r
namespace TrafficClient.Workers {\r
public class TrafficWorker {\r
+ private static readonly Logger logger = LogManager.GetCurrentClassLogger();\r
\r
protected IMessageBus messageBus;\r
protected PlanAirDataReader dataReader;\r
}\r
\r
protected void TryConnect() {\r
- if (connection.State != ConnectionState.Open) {\r
- connection.Close();\r
- connection.Open();\r
+ try {\r
+ if (connection.State != ConnectionState.Open) {\r
+ connection.Close();\r
+ connection.Open();\r
+ }\r
+ } catch (Exception e) {\r
+ OnError(logger, e);\r
}\r
}\r
\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+ <name>RemoteSystemsTempFiles</name>\r
+ <comment></comment>\r
+ <projects>\r
+ </projects>\r
+ <buildSpec>\r
+ </buildSpec>\r
+ <natures>\r
+ <nature>org.eclipse.rse.ui.remoteSystemsTempNature</nature>\r
+ </natures>\r
+</projectDescription>\r
URI sourcePath = new URI("file://10.10.1.100/BRAAVOS/ARCHIVE");\r
try {\r
stream = Files.newDirectoryStream(Paths.get(sourcePath));\r
- List<File> allFiles = new ArrayList<>();\r
+ List<String> allFiles = new ArrayList<>();\r
for (Path p : stream) {\r
check_rd_collect(p, allFiles);\r
}\r
stream.close();\r
\r
- stream = Files.newDirectoryStream(Paths.get(sourcePath));\r
+ stream = Files.newDirectoryStream(Paths.get(Paths.get(sourcePath).toString(), ".STATUS"));\r
+ List<String> allStatus = new ArrayList<>();\r
for (Path p : stream) {\r
- check_rd_process(p, allFiles);\r
+ check_rd_collect_status(p, allStatus);\r
}\r
stream.close();\r
+\r
+ check_rd_process(allFiles, allStatus);\r
} catch (Exception e) {\r
System.err.println(e.getMessage());\r
}\r
\r
}\r
\r
- private void check_rd_collect(Path mediaFilePath, List<File> allFiles) {\r
+ private void check_rd_collect(Path mediaFilePath, List<String> allFiles) {\r
File mediaFile = mediaFilePath.toFile();\r
if (mediaFile.isDirectory() || !mediaFile.getName().toUpperCase().endsWith(".MXF"))\r
return;\r
- allFiles.add(mediaFile);\r
+ allFiles.add(mediaFile.getName().toUpperCase());\r
+ }\r
+\r
+ private void check_rd_collect_status(Path mediaFilePath, List<String> allFiles) {\r
+ File file = mediaFilePath.toFile();\r
+ if (file.isDirectory() || (!file.getName().toUpperCase().endsWith(".JSON") && !file.getName().toUpperCase().endsWith(".KILLDATE")))\r
+ return;\r
+\r
+ if (file.getName().toUpperCase().endsWith(".KILLDATE")) {\r
+ String absolutePath = file.getAbsolutePath();\r
+ int pos = absolutePath.lastIndexOf(".");\r
+ pos = absolutePath.lastIndexOf(".", pos - 1);\r
+ file = new File(absolutePath.substring(0, pos) + ".KILLDATE");\r
+ }\r
+ allFiles.add(file.getName().toUpperCase());\r
}\r
\r
private File check_rd_nonzero_fellow(String mediaid, List<File> allFiles) {\r
return null;\r
}\r
\r
- private void check_rd_process(Path mediaFilePath, List<File> allFiles) {\r
+ private void check_rd_process(List<String> allFiles, List<String> allStatus) {\r
File mediaFile = mediaFilePath.toFile();\r
if (mediaFile.isDirectory() || !mediaFile.getName().toUpperCase().endsWith(".MXF"))\r
return;\r
<executor className="user.jobengine.server.steps.TSMRetrieveMissingMaterialStep" maxConcurrent="1"/>\r
<executor className="user.jobengine.server.steps.UploadRecordingToNexioStep" maxConcurrent="1"/>\r
<executor className="user.jobengine.server.steps.MediaToolStep" maxConcurrent="1"/>\r
+ <executor className="user.jobengine.server.steps.UpdateGhostMediaData" maxConcurrent="1"/>\r
</executors>
\ No newline at end of file
<parameter name="transcoderAddress" type="java.lang.String" />\r
<parameter name="transcoderTemplateName" type="java.lang.String" />\r
<parameter name="webPath" type="java.lang.String" />\r
+ <parameter name="localRetrievePath" type="java.lang.String" />\r
+ <parameter name="globalRetrievePath" type="java.lang.String" />\r
</parameters>\r
<variables>\r
<variable name="mediaCubeMedia" type="user.jobengine.db.Media" />\r
<input>\r
<variable name="killDateDays" />\r
</input>\r
+ <input>\r
+ <parameter name="localRetrievePath" />\r
+ </input>\r
+ <input>\r
+ <parameter name="globalRetrievePath" />\r
+ </input>\r
</inputs>\r
</calljobstep>\r
<calljobstep type="user.jobengine.server.steps.MediaToolStep" weight="1">\r
</input>\r
</inputs>\r
</calljobstep>\r
+ <calljobstep type="user.jobengine.server.steps.UpdateGhostMediaData" weight="1">\r
+ <inputs>\r
+ <input>\r
+ <variable name="mediaCubeMedia" />\r
+ </input>\r
+ </inputs>\r
+ </calljobstep>\r
</commands>\r
</jobtemplate>
\ No newline at end of file
package user.jobengine.server.steps;\r
\r
import java.nio.file.Paths;\r
-import java.util.List;\r
\r
import org.apache.logging.log4j.LogManager;\r
import org.apache.logging.log4j.Logger;\r
import com.ibm.nosql.json.api.BasicDBObject;\r
import com.ibm.nosql.json.api.DB;\r
import com.ibm.nosql.json.api.DBCollection;\r
-import com.ibm.nosql.json.api.DBObject;\r
\r
import user.commons.nosql.NoSQLUtils;\r
-import user.jobengine.db.ItemDAOEx;\r
-import user.jobengine.db.ItemManager;\r
+import user.jobengine.db.IItemManager;\r
import user.jobengine.db.Media;\r
import user.jobengine.server.IJobEngine;\r
import user.jobengine.server.IJobRuntime;\r
public class CreateMissingLowresStep extends JobStep {\r
private static final Logger logger = LogManager.getLogger();\r
private Marker marker;\r
+ private long highresStoreId;\r
\r
@StepEntry\r
public Object[] execute(String localHiresPath, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
Object[] result = { null, null, "%s", null, 0, true };\r
marker = jobRuntime.getMarker();\r
- ItemDAOEx dao = new ItemDAOEx((ItemManager) jobEngine.getItemManager());\r
- List<Media> medias = dao.getUntranscodedMedias();\r
-\r
DB db = NoSQLUtils.getNoSQLDB();\r
DBCollection collection = db.getCollection("missing_lowres");\r
+ IItemManager manager = jobEngine.getItemManager();\r
+ highresStoreId = manager.getSystemStore(false).getId();\r
+ Media media = getFirstUntranscodedMedia(manager, collection);\r
+\r
try {\r
- if (medias == null || medias.size() == 0) {\r
+ if (media == null) {\r
throw new Exception("Nincs feldolgozandó hiány.");\r
}\r
\r
- for (Media media : medias) {\r
- String name = media.getMediaFilesName();\r
- if (name == null)\r
- continue;\r
- DBObject existing = collection.findOne(new BasicDBObject("name", name));\r
- if (existing != null)\r
- continue;\r
-\r
- result[0] = media;\r
- ArchiveItem archiveItem = new ArchiveItem();\r
- archiveItem.setMediaFile(Paths.get(localHiresPath, name).toString());\r
- result[1] = archiveItem;\r
- collection.save(new BasicDBObject("name", name));\r
- break;\r
- }\r
+ String name = media.getMediaFilesName();\r
+ result[0] = media;\r
+ ArchiveItem archiveItem = new ArchiveItem();\r
+ archiveItem.setMediaFile(Paths.get(localHiresPath, name).toString());\r
+ result[1] = archiveItem;\r
+ collection.save(new BasicDBObject("name", name));\r
+ logger.info(marker, "Hiányzó lowres mediaId: {}", media.getId());\r
\r
} catch (Exception e) {\r
logger.catching(e);\r
}\r
return result;\r
}\r
+\r
+ private Media getFirstUntranscodedMedia(IItemManager manager, DBCollection collection) {\r
+ Media[] result = { null };\r
+ String query = "select v.mediaid from vw_mediafiles v, mediafile mf where (v.mediafilecount=1 and mf.mediaid = v.mediaid and mf.storeid=1)";\r
+ manager.executeQuery(query, rs -> {\r
+ try {\r
+ long mediaId = rs.getLong(1);\r
+ Media media = manager.getMedia(mediaId);\r
+\r
+ //TEST!!!\r
+ // if (!media.getHouseId().equals("134118999"))\r
+ // return true;\r
+\r
+ String name = media.getMediaFilesName();\r
+ long existing = collection.find(new BasicDBObject("name", name)).count();\r
+ if (existing > 0)\r
+ return true;\r
+\r
+ result[0] = media;\r
+ } catch (Exception e) {\r
+ logger.error(e);\r
+ }\r
+ return false;\r
+ }, null);\r
+ return result[0];\r
+ }\r
}\r
import org.apache.commons.lang.StringUtils;\r
\r
public class MetadataTypeDetector {\r
+\r
public enum MetadataType {\r
TrafficMaterial, TrafficPromo, TrafficAD, OctopusStory, OctopusPlaceholder, Generic\r
}\r
\r
+ private static final String HYPHEN = "-";\r
+ private static final String DOT = ".";\r
+\r
private static final String REGEXP_TRAFFICMATERIALID = "^M{1}[0-9]{6}[A-Z]{1}$";\r
private static final String REGEXP_TRAFFICADID = "^R{1}[0-9]{6}[A-Z]{1}$";\r
private static final String REGEXP_TRAFFICPROMOID = "^P{1}[0-9]{6}[A-Z]{1}$";\r
return MetadataType.Generic;\r
}\r
\r
+ public static String truncateExtension(String name) {\r
+ String result = name;\r
+ if (result != null && result.contains(DOT))\r
+ result = result.substring(0, result.lastIndexOf(DOT));\r
+ return result;\r
+ }\r
+\r
+ public static String truncateVersion(String name) {\r
+ String result = name;\r
+ if (result != null && result.contains(HYPHEN))\r
+ result = result.split(HYPHEN)[0];\r
+ return result;\r
+ }\r
+\r
}\r
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import java.util.List;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.apache.logging.log4j.Marker;\r
+\r
+import user.jobengine.db.IItemManager;\r
+import user.jobengine.db.Media;\r
+import user.jobengine.db.MediaFile;\r
+import user.jobengine.db.Store;\r
+import user.jobengine.server.IJobEngine;\r
+import user.jobengine.server.IJobRuntime;\r
+import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;\r
+\r
+public class UpdateGhostMediaData extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ private Marker marker;\r
+\r
+ @StepEntry\r
+ public Object[] execute(Media mediaCubeMedia, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {\r
+ marker = jobRuntime.getMarker();\r
+\r
+ IItemManager manager = jobEngine.getItemManager();\r
+ //Refresh from db\r
+ List<MediaFile> mediaFiles = manager.getMedia(mediaCubeMedia.getId()).getMediaFiles();\r
+ if (mediaFiles != null && mediaFiles.size() == 2) {\r
+ Store highresStore = manager.getSystemStore(false);\r
+ Store lowresStore = manager.getSystemStore(true);\r
+ MediaFile lowres = get(lowresStore, mediaFiles);\r
+ MediaFile highres = get(highresStore, mediaFiles);\r
+ if (highres == null) {\r
+ logger.info(marker, "Nincs highres mediaId: {}", mediaCubeMedia.getId());\r
+ return null;\r
+ }\r
+ if (lowres == null) {\r
+ logger.info(marker, "Nincs lowres mediaId: {}", mediaCubeMedia.getId());\r
+ return null;\r
+ }\r
+ String id = MetadataTypeDetector.truncateExtension(highres.getRelativePath());\r
+ id = MetadataTypeDetector.truncateVersion(id);\r
+ boolean detect = MetadataTypeDetector.GuessMetadataType(id) == MetadataType.OctopusPlaceholder\r
+ || MetadataTypeDetector.GuessMetadataType(id) == MetadataType.OctopusStory;\r
+ if (!detect) {\r
+ logger.info(marker, "Nem bejátszó mediaId: {}, file: {}", mediaCubeMedia.getId(), highres.getRelativePath());\r
+ return null;\r
+ }\r
+\r
+ manager.executeQuery("SELECT mediaid FROM mediafile WHERE relativepath=? and storeid=? and id!=?", rs -> {\r
+ long mediaId = rs.getLong(1);\r
+ Media media = manager.getMedia(mediaId);\r
+ if (media.getMediaFilesCount() == 1) {\r
+ logger.info(marker, "Hiányzó szellem lowres hozzáadása mediaId: {}", media.getId());\r
+\r
+ MediaFile mf = (MediaFile) manager.get(MediaFile.class, lowres.getId());\r
+ mf.setMedia(media);\r
+ mf.setId(0);\r
+ manager.add(mf);\r
+ media.setLength(mediaCubeMedia.getLength());\r
+ manager.modify(media);\r
+ }\r
+ return true;\r
+ }, st -> {\r
+ st.setString(1, highres.getRelativePath());\r
+ st.setLong(2, highresStore.getId());\r
+ st.setLong(3, highres.getId());\r
+ });\r
+\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ private MediaFile get(Store store, List<MediaFile> mediaFiles) {\r
+ for (MediaFile mf : mediaFiles) {\r
+ if (mf.getStoreId() == store.getId())\r
+ return mf;\r
+ }\r
+ return null;\r
+ }\r
+\r
+}\r
+++ /dev/null
--- execute with \r
--- db2 -td@ -vmf 2-CreateStructure.db2\r
-\r
---DROP TRIGGER TRG_INSERT_ITEM@\r
-\r
---CREATE TRIGGER TRG_INSERT_ITEM\r
- --AFTER INSERT ON ITEM\r
- --REFERENCING NEW AS r\r
- --FOR EACH ROW\r
---BEGIN ATOMIC\r
--- DECLARE x VARCHAR(255);\r
--- CALL SYSPROC.SYSTS_UPDATE(NULL, 'item_title', NULL, 'hu_HU', :x);\r
--- CALL SYSPROC.SYSTS_UPDATE(NULL, 'item_desc', NULL, 'hu_HU', :x);\r
--- CALL SYSPROC.SYSTS_UPDATE(NULL, 'item_houseid', NULL, 'hu_HU', :x);\r
---END\r
---@\r
-\r
-\r
-CREATE TRIGGER DB2ADMIN.TRG_MEDIAFILE_AFTER_INSERT after insert\r
-on mediafile\r
-referencing new as n\r
-for each row\r
-when (n.storeid = 1)\r
-begin atomic\r
- insert into mediadescription (itemid, mediaid, mediafileid, description)\r
- select \r
- itemid,\r
- mediaid, \r
- mediafileid,\r
- COALESCE(hundate(archived), '') concat ' ' \r
- concat COALESCE(defdate(archived), '') concat ' ' \r
- concat COALESCE(itemhouseid, '') concat ' ' \r
- concat COALESCE(itemtitle, '') concat ' ' \r
- concat COALESCE(itemdescription,'') concat ' ' \r
- concat COALESCE(mediahouseid, '') concat ' ' \r
- concat COALESCE(mediatitle, '') concat ' ' \r
- concat COALESCE(mediadescription, '') concat ' ' \r
- concat COALESCE(mediafilehouseid, '')\r
- from vw_items_description \r
- where mediafileid = n.id;\r
-end\r
-GO\r
-\r
-CREATE TRIGGER DB2ADMIN.TRG_MEDIAFILE_AFTER_UPDATE after update of HOUSEID\r
-on mediafile\r
-referencing new as n\r
-for each row\r
-when (n.storeid = 1)\r
-begin atomic\r
- update mediadescription set description = (\r
- select \r
- COALESCE(hundate(archived), '') concat ' ' \r
- concat COALESCE(defdate(archived), '') concat ' ' \r
- concat COALESCE(itemhouseid, '') concat ' ' \r
- concat COALESCE(itemtitle, '') concat ' ' \r
- concat COALESCE(itemdescription,'') concat ' ' \r
- concat COALESCE(mediahouseid, '') concat ' ' \r
- concat COALESCE(mediatitle, '') concat ' ' \r
- concat COALESCE(mediadescription, '') concat ' ' \r
- concat COALESCE(mediafilehouseid, '')\r
- from vw_items_description \r
- where mediafileid = n.id);\r
-end\r
-GO\r
-\r
-CREATE TRIGGER DB2ADMIN.TRG_MEDIA_AFTER_UPDATE after update on media\r
-referencing new as n\r
-for each row\r
-begin atomic\r
- update mediadescription set description = (\r
- select \r
- COALESCE(hundate(archived), '') concat ' ' \r
- concat COALESCE(defdate(archived), '') concat ' ' \r
- concat COALESCE(itemhouseid, '') concat ' ' \r
- concat COALESCE(itemtitle, '') concat ' ' \r
- concat COALESCE(itemdescription,'') concat ' ' \r
- concat COALESCE(mediahouseid, '') concat ' ' \r
- concat COALESCE(mediatitle, '') concat ' ' \r
- concat COALESCE(mediadescription, '') concat ' ' \r
- concat COALESCE(mediafilehouseid, '')\r
- from vw_items_description \r
- where mediaid = n.id);\r
-end\r
-GO\r
-\r
-CREATE TRIGGER DB2ADMIN.TRG_ITEM_AFTER_UPDATE after update on item\r
-referencing new as n\r
-for each row\r
-begin atomic\r
- update mediadescription set description = (\r
- select \r
- COALESCE(hundate(archived), '') concat ' ' \r
- concat COALESCE(defdate(archived), '') concat ' ' \r
- concat COALESCE(itemhouseid, '') concat ' ' \r
- concat COALESCE(itemtitle, '') concat ' ' \r
- concat COALESCE(itemdescription,'') concat ' ' \r
- concat COALESCE(mediahouseid, '') concat ' ' \r
- concat COALESCE(mediatitle, '') concat ' ' \r
- concat COALESCE(mediadescription, '') concat ' ' \r
- concat COALESCE(mediafilehouseid, '')\r
- from vw_items_description \r
- where itemid = n.id);\r
-end\r
-GO\r
--- /dev/null
+CREATE OR REPLACE FUNCTION "DB2ADMIN"."FULLDESC" (IN initemid BIGINT, IN inmediaid BIGINT, IN inmediafileid BIGINT) \r
+returns CLOB(400000) \r
+return \r
+SELECT \r
+ COALESCE(hundate(archived), '') || ' ' ||\r
+ COALESCE(defdate(archived), '') || ' ' ||\r
+ COALESCE(itemhouseid, '') || ' ' ||\r
+ COALESCE(itemtitle, '') || ' ' ||\r
+ COALESCE(itemdescription,'') || ' ' ||\r
+ COALESCE(mediahouseid, '') || ' ' ||\r
+ COALESCE(mediatitle, '') || ' ' ||\r
+ COALESCE(mediadescription, '') || ' ' ||\r
+ COALESCE(mediafilehouseid, '')\r
+from vw_items_description WHERE itemid = initemid AND mediaid = inmediaid AND mediafileid = inmediafileid\r
+GO\r
+\r
+CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_MEDIAFILE_AFTER_INSERT after insert\r
+on mediafile\r
+referencing new as n\r
+for each row\r
+when (n.storeid = 1)\r
+begin atomic\r
+ insert into mediadescription (itemid, mediaid, mediafileid, description)\r
+ select \r
+ itemid,\r
+ mediaid, \r
+ mediafileid,\r
+ fulldesc(itemid, mediaid, mediafileid)\r
+ from vw_items \r
+ where mediafileid = n.id;\r
+end\r
+GO\r
+\r
+CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_MEDIAFILE_AFTER_DELETE after delete\r
+on mediafile\r
+referencing old as o\r
+for each row\r
+when (o.storeid = 1)\r
+begin atomic\r
+ delete from mediadescription where mediafileid = o.id;\r
+end\r
+GO\r
+\r
+CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_MEDIA_AFTER_UPDATE after update on media\r
+referencing new as n\r
+for each row\r
+begin atomic\r
+ update mediadescription SET description = fulldesc(itemid, mediaid, mediafileid) where mediaid = n.id;\r
+end\r
+GO\r
+\r
+CREATE OR REPLACE TRIGGER DB2ADMIN.TRG_ITEM_AFTER_UPDATE after update on item\r
+referencing new as n\r
+for each row\r
+begin atomic\r
+ update mediadescription SET description = fulldesc(itemid, mediaid, mediafileid) where itemid = n.id;\r
+end\r
+GO\r
+\r
+--osszes frissitese\r
+--update mediadescription SET description = fulldesc(itemid, mediaid, mediafileid)\r
+\r
+\r
System.setProperty("jobengine.octopus.stories.name", "stories180620");\r
System.setProperty("jobengine.octopus.storyfolders.name", "storyfolders180620");\r
\r
- System.setProperty("jobengine.nosql.db.url", "jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");\r
+ System.setProperty("jobengine.nosql.db.url", "jdbc:db2://10.10.1.29:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");\r
System.setProperty("jobengine.nosql.db.user", "db2admin");\r
System.setProperty("jobengine.nosql.db.password", "password");\r
- System.setProperty(ItemManager.DBURL, "jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");\r
+ System.setProperty(ItemManager.DBURL, "jdbc:db2://10.10.1.29:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");\r
System.setProperty(ItemManager.DBUSERNAME, "db2admin");\r
System.setProperty(ItemManager.DBPASSWORD, "password");\r
System.setProperty(LogUtils.LOGLEVEL, "INFO");\r
String idToCheck = houseid.substring(0, houseid.lastIndexOf("-"));\r
System.out.println(idToCheck);\r
}\r
+\r
+ @Test\r
+ public void test5() throws Exception {\r
+ Item i = manager.createItem("Generic", "Item", "", "desc1");\r
+ Media m = manager.createMedia("Generic", "Media", "", "desc2");\r
+ i.appendMedia(m);\r
+ MediaFile mf = manager.createMediaFile("xxx", manager.getFileType("High-res"), manager.getSystemStore(false), m);\r
+ m.appendMediaFile(mf);\r
+ manager.mergeItemStructure(i);\r
+ System.out.println("ItemId:" + i.getId());\r
+ System.out.println("MediaId:" + m.getId());\r
+ System.out.println("MediaFileId:" + mf.getId());\r
+\r
+ i.setHouseId("1desc1");\r
+ i.modify();\r
+ System.out.println("Item modified");\r
+\r
+ m.setHouseId("2desc2");\r
+ m.modify();\r
+ System.out.println("Media modified");\r
+\r
+ mf.remove();\r
+ System.out.println("MediaFile deleted");\r
+ }\r
+\r
+ @Test\r
+ public void test6() throws Exception {\r
+ String result = "sss.valami.yy";\r
+ if (result != null && result.contains("."))\r
+ result = result.substring(0, result.lastIndexOf("."));\r
+ System.out.println(result);\r
+ }\r
}\r