Neuaufbau des Scripts mit neuen Ideen, cbu 110914 Dramatische Beschleunigung erreicht! Set Error Capture [ On ] // Set Variable [ $pk_proj; Value:_SP(1) ] Set Variable [ $options; Value:_SP("") ] Set Variable [ $optionsallowed; Value:"pk_Projekt pk_profil Dateiname" & " OhneTestFaelle" & /*Ignore all test cases 999*** */ " NoSearch" & /*Admin Test: Work with prev. found set of Einsdg */ "" ] Set Variable [ $d; Value:_OptionsValueEvalAll ( ""; $options; $optionsallowed ) ] If [ IsEmpty( $Dateiname ) //nicht vom Commander übergeben ] Set Variable [ $Exportdatei_MailenAn; Value:_DlgI ( "Emailadresse, an die die Exportdatei gemailt werden soll (ggfs. leer lassen)"; "OK"; "" ; "c.busch@teambusch.de" ) ] Set Variable [ $sep; Value:";" ] Set Variable [ $start; Value:_TSnow ] Liste der PNK der verwendeten Params aufbauen: FIXME: Seltene Scores wie Challenges extra sammeln! Go to Layout [ [EinsdgT] Einsendungen Tabelle [EETT] *170714 (_Einsendung_) ] If [ $pk_proj ] Else Enter Find Mode [ ] Set Field [ _Einsendung_::_fk_Projekt; "==" & $pk_proj ] Perform Find [ ] Set Variable [ $pk_proj; Value:_Einsendung_::_fk_Projekt ] Set Variable [ $pk_profil; Value:_Einsendung_::_fk_Profil ] Sort by MNr: Sort Records [ Specified Sort Order: _Einsendung_::d_MNr; ascending ] [ Restore; No dialog ] Set Variable [ $list_pkeinsdg; Value:_ListField( _Einsendung_:: pk_einsdg; 1; _Found ) ] Set Field [ _A1 ::g_t; "Starting " & _TSnow ] Sortieren nach Anz. PatParams: Sort Records [ Specified Sort Order: _Einsendung_::d_Anz_PatParams; ascending ] [ Restore; No dialog ] [ Last ] -1-
Set Variable [ $list_pnk; Value:_Einsendung_::k_ListPPParKurzName ] If [ 1 //_Dlg("Nur eine EInsdg für die Param-Liste (TEST!), oder 10 STück abklappern?"; "Eine"; 10)=2 ] Set Variable [ $numcheck; Value:10 ] Set Variable [ $n; Value:1 ] [ Previous ] Set Variable [ $list_pnk; Value:_UniqueLines ( List( $list_pnk ; _Einsendung_::k_ListPPParKurzName ) ) ] Set Variable [ $N1; Value:ValueCount( $list_pnk ) ] [ Previous; Exit after last ] Set Variable [ $n; Value:$n +1 ] Exit If [ $n >= $numcheck or Get(RecordNumber) = 1 ] End Jetzt sind die Params gesammelt, die bei einer der "besten" 10 Einsdg vorkamen; hier fehlen aber u.u. diverse Scores, v.a. Challegens etc Daher alle Params aus ProfilObjekten addieren: Set Variable [ $imax_param_ohne_po; Value:ValueCount( $list_pnk ) ] Go to Layout [ [ProfObjT] ProfilObjekte Tabelle (_ProfilObjekt_) ] Enter Find Mode [ ] Set Field [ _ProfilObjekt_::_fk_Param; ">0" ] Set Field [ _ProfilObjekt_::_fk_Profil; "==" & $pk_profil ] Set Field [ _ProfilObjekt_::d_NProParam_12; 1 ] Perform Find [ ] Set Variable [ $list_pnk_profilobjekte; Value:_ListField( _ProfilObjekt_::k_ParNameKurz ; 1; _Found ) ] Set Variable [ $list_pnk; Value:_UniqueLines ( List( $list_pnk ; $list_pnk_profilobjekte ) ) ] Set Variable [ $imax_param; Value:ValueCount( $list_pnk ) ] // Set Variable [ $d; Value:_Dlg("$imax_Param_ohne_PO=" & $imax_param_ohne_po & " $imax_param=" & $imax_param ; "OK"; "") ] // Set Variable [ $d; Value:_Dlg("Jetzt folgt Scriptpause, damit zu Testzwecken $list_pkn im DataViewer gekürzt werden kann!"; "OK"; "") ] // Pause/Resume Script [ Indefinitely ] Liste der ParNameKurz fertig Liste der ParNameKurz fertig Liste der ParNameKurz fertig Liste der ParNameKurz fertig Liste der ParNameKurz fertig Go to Layout [ A1_Leer Scripts *110914 (_A1 ) ] Set Variable [ $header; Value:Substitute( List( "MNr pk_einsdg AnzPP DatumEinsdg DatumPDF DatumAB" ; $list_pnk ) ; " "; $sep ) //Fest Angaben, dann alle PNK nebeneinander ] -2-
Set Variable [ $export; Value:$header //Diese Var. wird in ein Textfile exportiert ] Set Variable [ $ie; Value:1 ] Set Variable [ $iemax; Value:ValueCount( $list_pkeinsdg ) ] Freeze Window Set Variable [ $pk_einsdg; Value:GetValue( $list_pkeinsdg ; $ie ) ] Perform Script [ Win01.F2.Fenster new/move allgemein (SP=Options or L T W H Title)/ 110914 ; Parameter: "100 100 800 300 Script " & _SN(1) &", Suchfenster_Einsdg, DS " & $ie & " von " & $iemax ] Perform Script [ Einsdg02Scr.ScrTab, suche( SP=pk_Einsdg MNr18 MNr13 pk_proj DateCrt)(SR=pk_Einsdg)/ 16Jul12 ; Parameter: $pk_einsdg ] Set Variable [ $MNr; Value:_Einsendung_::d_MNr ] Set Variable [ $$PPlist; Value:_Einsendung_::k_PPList_unsortedFast //Für CF _PP() zur Verfügung stellen ] Set Variable [ $ListPP_ParNameKz_Falls_Wert_Vorhanden; Value:_Einsendung_:: k_listpp_parnamekz_falls_wert_vorhanden //Die Liste der PP mit Wert ] Set Variable [ $line; Value:_Red( $MNr ) & $sep & _Blue( $pk_einsdg ) & $sep & _Einsendung_::k_Anz_PatParams_mit_Wert & $sep & _Einsendung_::s_DateCrt & $sep & _Einsendung_::d_DC_PDF_DatumErstellung & $sep & _Einsendung_::d_DC_Arztbericht_DatumErstellung & $sep ] If [ Mod( $ie; 50 ) = 1 //Ab&zu Fortschritt zeigen ] Freeze Window Close Window [ Current Window ] // Set Variable [ $d; Value:_DialogFlash( 20; $pk_einsdg & " = " & $MNr ) ] Schleife über die Params: Set Variable [ $i; Value:1 ] Set Variable [ $ParNameKurz; Value:GetValue( $list_pnk; $i ) ] If [ Position( $ListPP_ParNameKz_Falls_Wert_Vorhanden ; $ParnameKurz ; 1; 1 ) //Der Param hat einen Wert ] Else Set Variable [ $wert; Value:_PP ( $ParNameKurz; "" ) ] Set Variable [ $line; Value:$line & $wert & $sep ] Set Variable [ $line; Value:$line & $sep //Gibt sowieso keinen Wert, nur $sep addieren ohne $$PPList zu durchsuchen ] Nächster Param: -3-
Set Variable [ $i; Value:$i + 1 ] Exit If [ Abs( $i ) > Abs( $imax_param ) ] End // Set Variable [ $export; Value:List( $export ; $line ) ] Nächste Einsdg: Set Variable [ $ie; Value:$iE + 1 ] Exit If [ Abs( $ie ) > Abs( $iemax ) or _ModKeys > 8 ] End Set Variable [ $end; Value:_TSnow ] Set Variable [ $duration; Value:_TS_DiffSeconds ( "" ; $start; $end ) ] Set Field [ _A1 ::g_t; $iemax & " Einsendungen, " & $imax_param & " Parameter" & " Startzeit " & $start & ", Endzeit " & $end &", Dauer=" & $duration & " Sekunden" & " " & $export ] Go to Layout [ A1_Leer Scripts *110914 (_A1 ) ] Set Variable [ $Pfad; Value:_DeskTopPfad ] Set Variable [ $datei; Value:Case( not IsEmpty( $dateiname ); $dateiname; /*übergeben zb vom Cmd-Script */ "QuerExport_HePro_" & _Append( $pk_profil; "Profil_*" ) & _Append( $pk_projekt; "Projekt_*" ) & "_PatParams_" & _TSnow_YYMMDDhhmmss & ".TAB" ) ] Set Variable [ $pfaddateifm; Value:$pfad & $datei ] Set Variable [ $pfaddateitroi; Value:_PathFMtoTROI ( $pfaddateifm; 1 ) ] Set Variable [ $errdelete; Value:TrFile_DeleteFile( ""; $pfaddateitroi ) ] Set Variable [ $SP_export; Value:"" & " " & $pfaddateifm & " " & " " & $export ] Perform Script [ Tool15.TroiFile11.Export list with CRLF (SP=PfadTroi PfadFM options list)/ 100914 ; Parameter: $SP_export ] If [ _Pos($Exportdatei_MailenAn; "@" ) > 0 //Die Datei soll auch per Email verschickt werden (v.a. zum Debugging) ] Perform Script [ Einsdg777_TimerProt.Einsdg:ProtokollAbarbeitung w. $$TimerLast (SP=Text)/ 250814 ; Parameter: _SN(1) & ": Start EmailScript" ] Set Variable [ $TO; Value:$Exportdatei_MailenAn ] Set Variable [ $CC; Value:"" ] Set Variable [ $subject; Value:"HePro-Querexport, Datei " & $Datei & ", Export-TS=" & _TSnow & ", pk_projekt=" & ] -4-
Set Variable [ $subject; Value:"HePro-Querexport, Datei " & $Datei & ", Export-TS=" & _TSnow & ", pk_projekt=" & $pk_projekt ] // Set Variable [ $body; Value:"Inhalt der exportierten Dateie: " & $export ] Set Variable [ $PathAttachFM; Value:$pfadDatei ] Set Variable [ $SP; Value:"-to=[" & $TO & "] " & "-CC=[" & $CC & "] " & "-from=[heproserver@vitaliberty.de] " & "-subject=[" & $subject & "] " & "-body=[" & _OptionsClearForUsage ( ""; $body ) & "] " & "-PathAttachFM=[" & $PathAttachFM & "] " & "-scriptname=[" & _SN(1) & "] " & "" ] Perform Script [ EmailFM10.Send (SP=opt.:pk_Projekt,to,cc,bcc,from,subject,pathAttachFM,Body)(SR=Error)/ 270614Im ; Parameter: $SP ] Set Variable [ $SP_Log; Value:_SN(1) & " " & " QuerExport: Emailscript bekam $SP=" & _OptionsClearForUsage ( ""; $SP ) ] Perform Script [ Logbook01.NeuDS (SP=options o. Script Alarm Text)(SR=pk_Logbook)/ 130814 ; Parameter: $SP_Log ] -5-