Prozeduren Previous topic Chapter index Next topic

SE_COPY_BLOCK

 

Eingabeparameter

Parameter

Typ

Beschreibung

SRCSNID

INTEGER

Ein Primary Key Wert von der SENDUNGEN Tabelle

SRCSEPOSITION

INTEGER

Damit wird das Sendeelement in der Sendestunde über die Position angegeben.

DESTSESNID

INTEGER

Ein Primary Key Wert von der SENDUNGEN Tabelle

DESTSEDATUM

DATE

Damit gibt man das Ziel Datum an.

DESTSEZEIT

INTEGER

Damit wird die Ziel Sendeelement Zeit übergeben.

DESTSESPPOSITION

INTEGER

Damit wird die Ziel Sendeplan Position übergeben.

DESTSESNPOSITION

INTEGER

Damit wird die Ziel Sendung Position übergeben.

DESTSEPOSITION

INTEGER

Damit gibt man die Ziel Sendeelement Position an.

COPYGROUP

INTEGER

Damit wird angegeben, ob nur ein Element oder eine ganze Gruppe kopiert werden soll.

DIRECTION

INTEGER

Damit wird die Richtung bestimmt ab dem angegebenen Element.

 

Ausgabeparameter

Parameter

Typ

Beschreibung

BLOCKSEID

INTEGER

Ein Primary Key Wert von der SENDEELEMENTE Tabelle vom neuen Element wird zurückgegeben.

BLOCKSEPOSITION

INTEGER

Gibt die neue Sendeelement Position zurück vom kopierten Element.

SEIDLIST

VARCHAR(8190)

Damit erhält man eine Komma separierte Liste von Source SEID zurück.

REFSEIDLIST

VARCHAR(8190)

Damit erhält man eine Komma separierte Liste von Ziel SEID zurück.

 

Beschreibung

Kopiert ein Sendeelement (mit Klammer) oder auch ganze Blöcke. (Wird von SE_COPY_TO_TIME aufgerufen)

 

Definition

CREATE PROCEDURE SE_COPY_BLOCK(
    SRCSNID INTEGER,
    SRCSEPOSITION INTEGER,
    DESTSESNID INTEGER,
    DESTSEDATUM DATE,
    DESTSEZEIT INTEGER,
    DESTSESPPOSITION INTEGER,
    DESTSESNPOSITION INTEGER,
    DESTSEPOSITION INTEGER,
    COPYGROUP INTEGER,
    DIRECTION INTEGER)
RETURNS (
    BLOCKSEID INTEGER,
    BLOCKSEPOSITION INTEGER,
    SEIDLIST VARCHAR(8190),
    REFSEIDLIST VARCHAR(8190))
AS
  DECLARE VARIABLE FirstLoopFlag   INTEGER;
  DECLARE VARIABLE LastKlammer     CHAR(1);
  DECLARE VARIABLE LastGruppe      CHAR(1);
  DECLARE VARIABLE LastTyp         CHAR(2);
  DECLARE VARIABLE HourInMsDiff    INTEGER;

  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          SMALLINT;
  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 CurrentSeId     INTEGER;
  DECLARE VARIABLE ATeId           INTEGER;
  DECLARE VARIABLE SeBlockId       INTEGER;
  DECLARE VARIABLE LastSeBlockId   INTEGER;
  DECLARE VARIABLE ExitAfterKlammer SMALLINT;
  DECLARE VARIABLE SeHerkunftId     INTEGER;
  DECLARE VARIABLE SeMusikVersionId INTEGER;
  DECLARE VARIABLE SeSyncIn         INTEGER;
  DECLARE VARIABLE SeSyncOut        INTEGER;
  DECLARE VARIABLE SeVorzeitigerSN  INTEGER;
BEGIN
  SeIdList = '';
  RefSeIdList = '';
  LastSeBlockId = 0;
  /* *************************************************** */
  /* Ab aktueller Position reuckwaerts Elemente kopieren */
  /* Ende bei erster Vorwaerts-Klammer oder bei Header   */
  /* (Header wird mitkopiert).                           */
  /* *************************************************** */
  IF (Direction = 1) THEN BEGIN

    DestSePosition = DestSePosition - 1;
    FirstLoopFlag = 1;
    ExitAfterKlammer = 0;
    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,SEOMROID,SEOMSTORYID,SEOMITEMID,SEOBJID,SEMOSID,
        SEPLAYERSTATUS,SEASPECTRATIO,SEBLOCKID,SEHERKUNFTID,SEMUSIKVERSIONID,SESYNCIN,SESYNCOUT,
        SEVORZEITIGER_STARTNEXT,SEARCHIVNR_2
      FROM SENDEELEMENTE
      WHERE (SESNID = :SrcSnId) AND (SEPOSITION <= :SrcSePosition)
      ORDER BY SEPOSITION DESCENDING
      INTO
        :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,:SeOmRoId,:SeOmStoryId,:SeOmItemId,:SeObjId,:SeMosId,
        :SePlayerStatus,:SeAspectRatio,:SeBlockId,:SeHerkunftId,:SeMusikVersionId,:SeSyncIn,:SeSyncOut,
        :SeVorzeitigerSN,:SeArchivNr_2
    DO BEGIN
      IF (FirstLoopFlag = 1) THEN BEGIN
        FirstLoopFlag = 0;
        ATeId = NULL;
        SELECT MIN(TEID)
        FROM TRIGGEREDEVENTS
        WHERE (TETYP < 100) AND
              ((TESEID = :SeId) OR
               (TESEID IN (SELECT TESEID FROM TRIGGEREDEVENTS
                           WHERE (TETRIGGEREDSEID = :SeId))))
        INTO :ATeId;
      END
      ELSE BEGIN
        IF (CopyGroup = 0) THEN BEGIN
          IF ((LastKlammer <> 'R') AND (SeKlammer <> 'V')) THEN BEGIN
            IF (ATeId IS NULL) THEN BEGIN
              EXIT;
            END
            ATeId = NULL;
            SELECT MIN(TEID)
            FROM TRIGGEREDEVENTS
            WHERE (TETYP < 100) AND
                  ((TESEID = :SeId) OR
                   (TESEID IN (SELECT TESEID FROM TRIGGEREDEVENTS
                               WHERE (TETRIGGEREDSEID = :SeId))))
            INTO :ATeId;
            IF (ATeId IS NULL) THEN BEGIN
              EXIT;  /* Exit Loop and Procedure */
            END
          END
        END
        ELSE IF ((SeBlockId <> LastSeBlockId) OR (LastGruppe <> SeGruppe)) THEN BEGIN
          EXIT;
        END
        IF ((ExitAfterKlammer = 1) OR (LastTyp = 'H') OR (LastTyp = 'HR') OR (LastTyp = 'HB')) THEN BEGIN
          IF ((SeKlammer <> 'V') OR (LastGruppe <> SeGruppe)) THEN BEGIN
            EXIT;  /* Exit Loop and Procedure */
          END ELSE BEGIN
            ExitAfterKlammer = 1;
          END
        END
      END

      CurrentSeId = SeId;
      LastKlammer = SeKlammer;
      LastGruppe  = SeGruppe;
      LastTyp     = SeTyp;
      LastSeBlockId = SeBlockId;
      HourInMsDiff = (DestSeSnPosition - SeSnPosition) * 60 * 60 * 10;

      EXECUTE PROCEDURE NEW_SEID RETURNING_VALUES SeId;
      
      IF (SeIdList != '') THEN
        SeIdList = SeIdList || ',';
      SeIdList = SeIdList || CAST(CurrentSeId AS VARCHAR(10));
      RefSeIdList = RefSeIdList || ';' || CAST(CurrentSeId AS VARCHAR(10)) || ':' || CAST(SeId AS VARCHAR(10));
      
      SeSnId       = DestSeSnId;
      SeDatum      = DestSeDatum;
      SeZeit       = DestSeZeit;
      SeSpPosition = DestSeSpPosition;
      SeSnPosition = DestSeSnPosition;
      SePosition   = DestSePosition;
      SeStatus     = 0;

      DestSePosition  = DestSePosition - 1;
      BlockSeId       = SeId;
      BlockSePosition = SePosition;

      /* Toleranz Zeit anpassen ausser bei Typ S */
      IF (SeTyp <> 'S') THEN BEGIN
        IF (SeToleranz1 <> 0) THEN BEGIN
          SeToleranz1 = SeToleranz1 + HourInMsDiff;
          IF (SeToleranz1 > (24 * 60 * 60 * 1000)) THEN BEGIN
            SeToleranz1 = SeToleranz1 - (24 * 60 * 60 * 1000);
          END
        END
        IF (SeToleranz2 <> 0) THEN BEGIN
          SeToleranz2 = SeToleranz2 + HourInMsDiff;
          IF (SeToleranz2 > (24 * 60 * 60 * 1000)) THEN BEGIN
            SeToleranz2 = SeToleranz2 - (24 * 60 * 60 * 1000);
          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,SEOMROID,SEOMSTORYID,SEOMITEMID,SEOBJID,SEMOSID,
        SEPLAYERSTATUS,SEASPECTRATIO,SEHERKUNFTID,SEMUSIKVERSIONID,SESYNCIN,SESYNCOUT,
        SEVORZEITIGER_STARTNEXT,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,:SeOmRoId,:SeOmStoryId,:SeOmItemId,:SeObjId,:SeMosId,
        :SePlayerStatus,:SeAspectRatio,:SeHerkunftId,:SeMusikVersionId,:SeSyncIn,:SeSyncOut,
        :SeVorzeitigerSN,: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
  END

  /* ********************************************************* */
  /* Ab aktueller Position vorwaerts Elemente kopieren.        */
  /* Ende bei letzter Rueckwaerts-Klammer oder vor naechstem . */
  /* Header (Header wird NICHT mitkopiert).                    */
  /* ********************************************************* */
  ELSE BEGIN

    DestSePosition = DestSePosition + 1;
    FirstLoopFlag = 1;

    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,SEOMROID,SEOMSTORYID,SEOMITEMID,SEOBJID,SEMOSID,
        SEPLAYERSTATUS,SEASPECTRATIO,SEBLOCKID,SEHERKUNFTID,SEMUSIKVERSIONID,SESYNCIN,SESYNCOUT,
        SEVORZEITIGER_STARTNEXT,SEARCHIVNR_2
      FROM SENDEELEMENTE
      WHERE (SESNID = :SrcSnId) AND (SEPOSITION >= :SrcSePosition)
      ORDER BY SEPOSITION ASCENDING
      INTO
        :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,:SeOmRoId,:SeOmStoryId,:SeOmItemId,:SeObjId,:SeMosId,
        :SePlayerStatus,:SeAspectRatio,:SeBlockId,:SeHerkunftId,:SeMusikVersionId,:SeSyncIn,:SeSyncOut,
        :SeVorzeitigerSN,:SeArchivNr_2
    DO BEGIN
      IF (FirstLoopFlag = 1) THEN BEGIN
        LastKlammer = SeKlammer;
        LastGruppe  = SeGruppe;
        BlockSeId       = SeId;
        BlockSePosition = SePosition;
        LastSeBlockId   = SeBlockId;
        FirstLoopFlag = 0;
        ATeId = NULL;
        SELECT MIN(TEID)
        FROM TRIGGEREDEVENTS
        WHERE (TETYP < 100) AND
              ((TESEID = :SeId) OR
               (TESEID IN (SELECT TESEID FROM TRIGGEREDEVENTS
                           WHERE (TETRIGGEREDSEID = :SeId))))
        INTO :ATeId;
      END
      ELSE BEGIN
        IF (CopyGroup = 0) THEN BEGIN
          IF ((LastKlammer <> 'V') AND (SeKlammer <> 'R')) THEN BEGIN
            IF (ATeId IS NULL) THEN BEGIN
              EXIT;  /* Exit Loop and Procedure */
            END
            ATeId = NULL;
            SELECT MIN(TEID)
            FROM TRIGGEREDEVENTS
            WHERE (TETYP < 100) AND
                  ((TESEID = :SeId) OR
                   (TESEID IN (SELECT TESEID FROM TRIGGEREDEVENTS
                               WHERE (TETRIGGEREDSEID = :SeId))))
            INTO :ATeId;
            IF (ATeId IS NULL) THEN BEGIN
              EXIT;  /* Exit Loop and Procedure */
            END
          END
        END
        ELSE IF ((SeBlockId <> LastSeBlockId) OR (LastGruppe <> SeGruppe)) THEN BEGIN
          EXIT;
        END
        IF ((SeTyp = 'H') OR (SeTyp = 'HR') OR (SeTyp = 'HB')) THEN BEGIN
          EXIT;  /* Exit Loop and Procedure */
        END

        CurrentSeId = SeId;
        LastKlammer = SeKlammer;
        LastGruppe  = SeGruppe;
        LastSeBlockId = SeBlockId;
        HourInMsDiff = (DestSeSnPosition - SeSnPosition) * 60 * 60 * 10;

        EXECUTE PROCEDURE NEW_SEID RETURNING_VALUES SeId;

        IF (SeIdList != '') THEN
          SeIdList = SeIdList || ',';
        SeIdList = SeIdList || CAST(CurrentSeId AS VARCHAR(10));
        RefSeIdList = RefSeIdList || ';' || CAST(CurrentSeId AS VARCHAR(10)) || ':' || CAST(SeId AS VARCHAR(10));

        SeSnId       = DestSeSnId;
        SeDatum      = DestSeDatum;
        SeZeit       = DestSeZeit;
        SeSpPosition = DestSeSpPosition;
        SeSnPosition = DestSeSnPosition;
        SePosition   = DestSePosition;
        SeStatus     = 0;

        DestSePosition = DestSePosition + 1;
        BlockSeId       = SeId;
        BlockSePosition = SePosition;

        /* Toleranz Zeit anpassen ausser bei Typ S */
        IF (SeTyp <> 'S') THEN BEGIN
          IF (SeToleranz1 <> 0) THEN BEGIN
            SeToleranz1 = SeToleranz1 + HourInMsDiff;
            IF (SeToleranz1 > (24 * 60 * 60 * 1000)) THEN BEGIN
              SeToleranz1 = SeToleranz1 - (24 * 60 * 60 * 1000);
            END
          END
          IF (SeToleranz2 <> 0) THEN BEGIN
            SeToleranz2 = SeToleranz2 + HourInMsDiff;
            IF (SeToleranz2 > (24 * 60 * 60 * 1000)) THEN BEGIN
              SeToleranz2 = SeToleranz2 - (24 * 60 * 60 * 1000);
            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,SEOMROID,SEOMSTORYID,SEOMITEMID,SEOBJID,SEMOSID,
          SEPLAYERSTATUS,SEASPECTRATIO,SEHERKUNFTID,SEMUSIKVERSIONID,SESYNCIN,SESYNCOUT,
          SEVORZEITIGER_STARTNEXT,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,:SeOmRoId,:SeOmStoryId,:SeOmItemId,:SeObjId,:SeMosId,
          :SePlayerStatus,:SeAspectRatio,:SeHerkunftId,:SeMusikVersionId,:SeSyncIn,:SeSyncOut,
          :SeVorzeitigerSN,: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
    END
  END
END

 

     Previous topic Chapter index Next topic