Prozeduren Previous topic Chapter index Next topic

SN_COPY

 

Eingabeparameter

Parameter

Typ

Beschreibung

SRCSNID

INTEGER

Primary Key Wert von der SENDUNGEN Tabelle

DESTSESNID

INTEGER

Primary Key Wert von der SENDUNGEN Tabelle

DESTSEDATUM

DATE

Damit wird das Ziel Datum übergeben.

DESTSEZEITDIFF

INTEGER

Damit wird die Zeit-Differenz von der Quell- und Ziel- Stunde übergeben.

DESTSESPPOSITION

INTEGER

Damit wird die Ziel Sendeplan Position übergeben.

DESTSESNPOSITION

INTEGER

Damit wird die Ziel Sendung Position übergeben.

 

Ausgabeparameter

(Es gibt keine Ausgabeparameter)

 

Beschreibung

Kopiert eine ganze Sendung.

 

Definition

CREATE PROCEDURE SN_COPY(
    SRCSNID INTEGER,
    DESTSESNID INTEGER,
    DESTSEDATUM DATE,
    DESTSEZEITDIFF INTEGER,
    DESTSESPPOSITION INTEGER,
    DESTSESNPOSITION INTEGER)
AS
  DECLARE VARIABLE SeId            INTEGER;
  DECLARE VARIABLE SeSnId          INTEGER;
  DECLARE VARIABLE SeTiId          INTEGER;
  DECLARE VARIABLE SeDatum         DATE;
  DECLARE VARIABLE SeSpPosition    INTEGER;
  DECLARE VARIABLE SeSnPosition    INTEGER;
  DECLARE VARIABLE SePosition      INTEGER;
  DECLARE VARIABLE SeMark          SMALLINT;
  DECLARE VARIABLE SeZeit          INTEGER;
  DECLARE VARIABLE SeDauer         INTEGER;
  DECLARE VARIABLE SeSequenz       CHAR(1);
  DECLARE VARIABLE SeGruppe        CHAR(1);
  DECLARE VARIABLE SeKlammer       CHAR(1);
  DECLARE VARIABLE SeParallel      CHAR(1);
  DECLARE VARIABLE SeRFlag         CHAR(1);
  DECLARE VARIABLE SeTyp           CHAR(2);
  DECLARE VARIABLE SeTitelThema    CHAR(80);
  DECLARE VARIABLE SeInterpret     CHAR(80);
  DECLARE VARIABLE SeKurzBez       CHAR(10);
  DECLARE VARIABLE SeGeschlecht    CHAR(1);
  DECLARE VARIABLE SeJahrgang      SMALLINT;
  DECLARE VARIABLE SeHitJahrgang   SMALLINT;
  DECLARE VARIABLE SeAutor         CHAR(80);
  DECLARE VARIABLE SeArchivNr      CHAR(50);
  DECLARE VARIABLE SeArchivNr_2    CHAR(50);
  DECLARE VARIABLE SeSystemNr      CHAR(20);
  DECLARE VARIABLE SeErstellDatum  DATE;
  DECLARE VARIABLE SeErsteller     CHAR(20);
  DECLARE VARIABLE SeBearbDatum    DATE;
  DECLARE VARIABLE SeBearbeiter    CHAR(20);
  DECLARE VARIABLE SeQuelle        CHAR(1);
  DECLARE VARIABLE SeFilename      CHAR(255);
  DECLARE VARIABLE SeSeite         CHAR(1);
  DECLARE VARIABLE SeStueckNr      SMALLINT;
  DECLARE VARIABLE SeMagazinNr     SMALLINT;
  DECLARE VARIABLE SeSlotNr        SMALLINT;
  DECLARE VARIABLE SeSmartMix      SMALLINT;
  DECLARE VARIABLE SeAnmoderation  BLOB SUB_TYPE 1;
  DECLARE VARIABLE SeText          BLOB SUB_TYPE 1;
  DECLARE VARIABLE SeAbmoderation  BLOB SUB_TYPE 1;
  DECLARE VARIABLE SeZusatztext    BLOB SUB_TYPE 1;
  DECLARE VARIABLE SeZusatzFeld1   CHAR(80);
  DECLARE VARIABLE SeZusatzFeld2   CHAR(80);
  DECLARE VARIABLE SeSchemaNr      CHAR(15);
  DECLARE VARIABLE SeVorlauf       INTEGER;
  DECLARE VARIABLE SeFadeIn        INTEGER;
  DECLARE VARIABLE SeMittelteil    INTEGER;
  DECLARE VARIABLE SeFadeOut       INTEGER;
  DECLARE VARIABLE SeNachlauf      INTEGER;
  DECLARE VARIABLE SeStartNext     INTEGER;
  DECLARE VARIABLE SeIntro1        INTEGER;
  DECLARE VARIABLE SeIntro2        INTEGER;
  DECLARE VARIABLE SeIntro3        INTEGER;
  DECLARE VARIABLE SeRefrain1      INTEGER;
  DECLARE VARIABLE SeRefrain2      INTEGER;
  DECLARE VARIABLE SeRefrain3      INTEGER;
  DECLARE VARIABLE SeRefrain4      INTEGER;
  DECLARE VARIABLE SeAudioFlag     SMALLINT;
  DECLARE VARIABLE SeDropInLevel   INTEGER;
  DECLARE VARIABLE SeFadeInChar    CHAR(1);
  DECLARE VARIABLE SeFadeOutChar   CHAR(1);
  DECLARE VARIABLE SeOutroChar     CHAR(1);
  DECLARE VARIABLE SeToleranz1     INTEGER;
  DECLARE VARIABLE SeToleranz2     INTEGER;
  DECLARE VARIABLE SeFixeLaenge    INTEGER;
  DECLARE VARIABLE SeIstDatum      DATE;
  DECLARE VARIABLE SeIstZeit       INTEGER;
  DECLARE VARIABLE SeIstDauer      INTEGER;
  DECLARE VARIABLE SeStatus        SMALLINT;
  DECLARE VARIABLE SeLevelInfo     BLOB SUB_TYPE 0;
  DECLARE VARIABLE SeLevelOffset   INTEGER;
  DECLARE VARIABLE SeInfo          CHAR(100);
  DECLARE VARIABLE SeVerlag        VARCHAR(255);
  DECLARE VARIABLE SeKatalogNr     CHAR(30);
  DECLARE VARIABLE SeIsrc          CHAR(20);
  DECLARE VARIABLE SeAlbumName     CHAR(80);
  DECLARE VARIABLE SeKaId          INTEGER;
  DECLARE VARIABLE SeKomponist     VARCHAR(255);
  DECLARE VARIABLE SeTexter        VARCHAR(255);
  DECLARE VARIABLE SeLaId          INTEGER;
  DECLARE VARIABLE SeReId          INTEGER;
  DECLARE VARIABLE SeOmRoId        VARCHAR(50);
  DECLARE VARIABLE SeOmStoryId     VARCHAR(50);
  DECLARE VARIABLE SeOmItemId      VARCHAR(50);
  DECLARE VARIABLE SeObjId         VARCHAR(50);
  DECLARE VARIABLE SeMosId         VARCHAR(50);
  DECLARE VARIABLE SePlayerStatus  SMALLINT;
  DECLARE VARIABLE SeAspectRatio   SMALLINT;
  DECLARE VARIABLE ATeId           INTEGER;
  DECLARE VARIABLE CurrentSeId     INTEGER;
  DECLARE VARIABLE SeIdList        VARCHAR(8190);
  DECLARE VARIABLE RefSeIdList     VARCHAR(8190);
  DECLARE VARIABLE DayInMilliSec   INTEGER;
  DECLARE VARIABLE SeHerkunftId    INTEGER;
  DECLARE VARIABLE SeMusikVersionId INTEGER;
  DECLARE VARIABLE SeSyncIn        INTEGER;
  DECLARE VARIABLE SeSyncOut       INTEGER;
  DECLARE VARIABLE SeVorzeitigerSN INTEGER;
BEGIN
  SeIdList = '';
  RefSeIdList = '';
  DayInMilliSec = (24 * 60 * 60 * 1000);
  DELETE FROM SENDEELEMENTE WHERE (SESNID = :DestSeSnId);
  FOR
    SELECT
      SEID,SESNID,SETIID,SEDATUM,SESPPOSITION,SESNPOSITION,SEPOSITION,SEMARK,
      SEZEIT,SEDAUER,SESEQUENZ,SEGRUPPE,SEKLAMMER,SEPARALLEL,SERFLAG,SETYP,
      SETITELTHEMA,SEINTERPRET,SEKURZBEZ,SEGESCHLECHT,SEJAHRGANG,SEHITJAHRGANG,SEAUTOR,
      SEARCHIVNR,SESYSTEMNR,SEERSTELLDATUM,SEERSTELLER,SEBEARBDATUM,SEBEARBEITER,
      SEQUELLE,SEFILENAME,SESEITE,SESTUECKNR,SEMAGAZINNR,SESLOTNR,SESMARTMIX,
      SEANMODERATION,SETEXT,SEABMODERATION,SEZUSATZTEXT,SEZUSATZFELD1,SEZUSATZFELD2,SESCHEMANR,
      SEVORLAUF,SEFADEIN,SEMITTELTEIL,SEFADEOUT,SENACHLAUF,SESTARTNEXT,
      SEINTRO1,SEINTRO2,SEINTRO3,SEREFRAIN1,SEREFRAIN2,SEREFRAIN3,SEREFRAIN4,
      SEDROPINLEVEL,SEFADEINCHAR,SEFADEOUTCHAR,SEOUTROCHAR,SEAUDIOFLAG,
      SETOLERANZ1,SETOLERANZ2,SEFIXELAENGE,SEISTDATUM,SEISTZEIT,SEISTDAUER,SESTATUS, SELEVELINFO, 
      SELEVELOFFSET,SEINFO,SEVERLAG,SEKATALOGNR,SEISRC,SEALBUMNAME,SEKAID,SEKOMPONIST,SEREID,
      SETEXTER,SELAID,SESYNCIN,SESYNCOUT,SEVORZEITIGER_STARTNEXT,
      SEOMROID,SEOMSTORYID,SEOMITEMID,SEOBJID,SEMOSID,
      SEPLAYERSTATUS,SEASPECTRATIO,SEHERKUNFTID,SEMUSIKVERSIONID,SEARCHIVNR_2
    FROM SENDEELEMENTE
    WHERE (SESNID = :SrcSnId) 
    ORDER BY SEPOSITION ASCENDING
    INTO
      :CurrentSeId,:SeSnId,:SeTiId,:SeDatum,:SeSpPosition,:SeSnPosition,:SePosition,:SeMark,
      :SeZeit,:SeDauer,:SeSequenz,:SeGruppe,:SeKlammer,:SeParallel,:SeRFlag,:SeTyp,
      :SeTitelThema,:SeInterpret,:SeKurzBez,:SeGeschlecht,:SeJahrgang,:SeHitJahrgang,:SeAutor,
      :SeArchivNr,:SeSystemNr,:SeErstelldatum,:SeErsteller,:SeBearbDatum,:SeBearbeiter,
      :SeQuelle,:SeFilename,:SeSeite,:SeStueckNr,:SeMagazinNr,:SeSlotNr,:SeSmartMix,
      :SeAnmoderation,:SeText,:SeAbmoderation,:SeZusatzText,:SeZusatzFeld1,:SeZusatzFeld2,:SeSchemaNr,
      :SeVorlauf,:SeFadeIn,:SeMittelteil,:SeFadeOut,:SeNachlauf,:SeStartNext,
      :SeIntro1,:SeIntro2,:SeIntro3,:SeRefrain1,:SeRefrain2,:SeRefrain3,:SeRefrain4,
      :SeDropInLevel,:SeFadeInChar,:SeFadeOutChar,:SeOutroChar,:SeAudioFlag,
      :SeToleranz1,:SeToleranz2,:SeFixeLaenge,:SeIstDatum,:SeIstZeit,:SeIstDauer,:SeStatus,:SeLevelInfo,
      :SeLevelOffset,:SeInfo,:SeVerlag,:SeKatalogNr,:SeIsrc,:SeAlbumName,:SeKaId,:SeKomponist,:SeReId,
      :SeTexter,:SeLaId,:SeSyncIn,:SeSyncOut,:SeVorzeitigerSN,
      :SeOmRoId,:SeOmStoryId,:SeOmItemId,:SeObjId,:SeMosId,
      :SePlayerStatus,:SeAspectRatio,:SeHerkunftId,:SeMusikVersionId,:SeArchivNr_2
  DO BEGIN
    EXECUTE PROCEDURE NEW_SEID RETURNING_VALUES SeId;
    ATeId = NULL;
    SELECT MIN(TEID)
    FROM TRIGGEREDEVENTS
    WHERE (TESEID = :CurrentSeId) OR
          (TESEID IN (SELECT TESEID FROM TRIGGEREDEVENTS
                      WHERE (TETRIGGEREDSEID = :CurrentSeId)))
    INTO :ATeId;
    IF (ATeId IS NOT NULL) THEN BEGIN
      IF (SeIdList != '') THEN
        SeIdList = SeIdList || ',';
      SeIdList = SeIdList || CAST(CurrentSeId AS VARCHAR(10));
      RefSeIdList = RefSeIdList || ';' || CAST(CurrentSeId AS VARCHAR(10)) || ':' || CAST(SeId AS VARCHAR(10));
    END
    SeSnId       = DestSeSnId;
    SeDatum      = DestSeDatum;
    SeZeit       = SeZeit + DestSeZeitDiff;
    IF (SeZeit < 0) THEN BEGIN
      SeZeit = SeZeit + DayInMilliSec;
    END
    ELSE BEGIN
      IF (SeZeit > DayInMilliSec) THEN BEGIN
        SeZeit = SeZeit - DayInMilliSec;
      END
    END
    SeSpPosition = DestSeSpPosition;
    SeSnPosition = DestSeSnPosition;
    SeStatus     = 0;

    /* Toleranz Zeit anpassen ausser bei Typ S */
    IF (SeTyp <> 'S') THEN BEGIN
      IF (SeToleranz1 <> 0) THEN BEGIN
        SeToleranz1 = SeToleranz1 + DestSeZeitDiff;
        IF (SeToleranz1 < 0) THEN BEGIN
          SeToleranz1 = SeToleranz1 + DayInMilliSec;
        END
        ELSE IF (SeToleranz1 > DayInMilliSec) THEN BEGIN
          SeToleranz1 = SeToleranz1 - DayInMilliSec;
        END
      END
      IF (SeToleranz2 <> 0) THEN BEGIN
        SeToleranz2 = SeToleranz2 + DestSeZeitDiff;
        IF (SeToleranz2 < 0) THEN BEGIN
          SeToleranz2 = SeToleranz2 + DayInMilliSec;
        END
        ELSE IF (SeToleranz2 > DayInMilliSec) THEN BEGIN
          SeToleranz2 = SeToleranz2 - DayInMilliSec;
        END
      END
    END

    /* SERFLAG darf nicht zurueckgesetzt werden, wenn es sich um ein X Flag handelt! */
    IF (SeRFlag <> 'X') THEN BEGIN
      SeRFlag = '-';
    END

    INSERT INTO SENDEELEMENTE (
      SEID,SESNID,SETIID,SEDATUM,SESPPOSITION,SESNPOSITION,SEPOSITION,SEMARK,
      SEZEIT,SEDAUER,SESEQUENZ,SEGRUPPE,SEKLAMMER,SEPARALLEL,SERFLAG,SETYP,
      SETITELTHEMA,SEINTERPRET,SEKURZBEZ,SEGESCHLECHT,SEJAHRGANG,SEHITJAHRGANG,SEAUTOR,
      SEARCHIVNR,SESYSTEMNR,SEERSTELLDATUM,SEERSTELLER,SEBEARBDATUM,SEBEARBEITER,
      SEQUELLE,SEFILENAME,SESEITE,SESTUECKNR,SEMAGAZINNR,SESLOTNR,SESMARTMIX,
      SEANMODERATION,SETEXT,SEABMODERATION,SEZUSATZTEXT,SEZUSATZFELD1,SEZUSATZFELD2,SESCHEMANR,
      SEVORLAUF,SEFADEIN,SEMITTELTEIL,SEFADEOUT,SENACHLAUF,SESTARTNEXT,
      SEINTRO1,SEINTRO2,SEINTRO3,SEREFRAIN1,SEREFRAIN2,SEREFRAIN3,SEREFRAIN4,
      SEDROPINLEVEL,SEFADEINCHAR,SEFADEOUTCHAR,SEOUTROCHAR,SEAUDIOFLAG,
      SETOLERANZ1,SETOLERANZ2,SEFIXELAENGE,SEISTDATUM,SEISTZEIT,SEISTDAUER,SESTATUS,SELEVELINFO,
      SELEVELOFFSET,SEINFO,SEVERLAG,SEKATALOGNR,SEISRC,SEALBUMNAME,SEKAID,SEKOMPONIST,SEREID,
      SETEXTER,SELAID,SESYNCIN,SESYNCOUT,SEVORZEITIGER_STARTNEXT,
      SEOMROID,SEOMSTORYID,SEOMITEMID,SEOBJID,SEMOSID,
      SEPLAYERSTATUS,SEASPECTRATIO,SEHERKUNFTID,SEMUSIKVERSIONID,SEARCHIVNR_2
    )
    VALUES (
      :SeId,:SeSnId,:SeTiId,:SeDatum,:SeSpPosition,:SeSnPosition,:SePosition,:SeMark,
      :SeZeit,:SeDauer,:SeSequenz,:SeGruppe,:SeKlammer,:SeParallel,:SeRFlag,:SeTyp,
      :SeTitelThema,:SeInterpret,:SeKurzBez,:SeGeschlecht,:SeJahrgang,:SeHitJahrgang,:SeAutor,
      :SeArchivNr,:SeSystemNr,:SeErstelldatum,:SeErsteller,:SeBearbDatum,:SeBearbeiter,
      :SeQuelle,:SeFilename,:SeSeite,:SeStueckNr,:SeMagazinNr,:SeSlotNr,:SeSmartMix,
      :SeAnmoderation,:SeText,:SeAbmoderation,:SeZusatzText,:SeZusatzFeld1,:SeZusatzFeld2,:SeSchemaNr,
      :SeVorlauf,:SeFadeIn,:SeMittelteil,:SeFadeOut,:SeNachlauf,:SeStartNext,
      :SeIntro1,:SeIntro2,:SeIntro3,:SeRefrain1,:SeRefrain2,:SeRefrain3,:SeRefrain4,
      :SeDropInLevel,:SeFadeInChar,:SeFadeOutChar,:SeOutroChar,:SeAudioFlag,
      :SeToleranz1,:SeToleranz2,:SeFixeLaenge,:SeIstDatum,:SeIstZeit,:SeIstDauer,:SeStatus,:SeLevelInfo,
      :SeLevelOffset,:SeInfo,:SeVerlag,:SeKatalogNr,:SeIsrc,:SeAlbumName,:SeKaId,:SeKomponist,:SeReId,
      :SeTexter,:SeLaId,:SeSyncIn,:SeSyncOut,:SeVorzeitigerSN,
      :SeOmRoId,:SeOmStoryId,:SeOmItemId,:SeObjId,:SeMosId,
      :SePlayerStatus,:SeAspectRatio,:SeHerkunftId,:SeMusikVersionId,:SeArchivNr_2
    );
    
    /* DABDB-365 */
    INSERT INTO UNTERTITEL (UTSEID, UTTIIDUNTER, UTPOSITION, UTLINEINDEX, UTNUTZUNGSDAUER, UTNUTZUNGSART)
      SELECT :SeId, UTTIIDUNTER, UTPOSITION, UTLINEINDEX, UTNUTZUNGSDAUER, UTNUTZUNGSART FROM UNTERTITEL
      WHERE (UTSEID = :CurrentSeId) AND (UTNUTZUNGSART = 1);
    
  END
  /* TriggeredEvents auch noch kopieren */
  EXECUTE PROCEDURE TE_SE_COPY(SeIdList, RefSeIdList);
END

 

     Previous topic Chapter index Next topic