Siebel CSSBCActivity.SetGridBeginEndDate o come ottenere tutte le istanze di un'azione di ripetizione in eScript?
Domanda
Vorrei ottenere tutte le istanze di un'azione di ripetizione tramite una query eScript bcAction.
Quello che ho già scoperto che ripetendo azioni:
- I creare un'azione di ripetere, ripetere interval = tutti i giorni
- posso vedere più istanze per questa azione in Siebel applet calendario.
- Se interrogo tutte le azioni dei eScript, ottengo una singola riga per l'azione ripetizione, tipo di "modello" di tutte le istanze di ripetizione
- Se modifico un'istanza specifica azione tramite calendario Siebel, una nuova riga viene creata per tale istanza.
- Se tutte le azioni di query di nuovo, ho 2 azioni che riguardano l'azione di ripetere. Il "modello" e l'istanza modificata.
- Quando apro un'istanza un'azione ripetitiva invariato nel calendario di Siebel e aperto Menu "Aiuto -> Informazioni su Registra ...", vedo che l'id fila dell'istanza è in qualche modo speciale, come un identificativo temporaneo:
8SIA-81UT810/10/2010
Fin qui, tutto bene. Ora voglio ottenere tutte le istanze dell'azione ripetendo eScript, se sono stati modificati o meno. Proprio come nel calendario applet Siebel.
In Bookshelf ho trovato un metodo promettente:
CSSBCActivity.SetGridBeginEndDate(startDate, endDate)
Si deve impostare il componente di business in modalità calendario. La mia speranza è che, così facendo, per tutte le istanze di azione di ripetizione dei determinato lasso di tempo filari d'azione temporanei verranno creati, che posso interrogare allora.
var args = new Array(2);
args[0] = "10/01/2010";
args[1] = "10/31/2010";
bcActivity.InvokeMethod("SetGridBeginEndDate", args);
...
bcACtivity.ExecuteQuery(ForwardOnly);
Tuttavia, l'esecuzione della query ha esito negativo con un'eccezione "00/00/0000 non possono essere convertiti a un timestamp". Ho tracciato la query e trovato il seguente:
SELECT ... FROM SIEBEL.S_EVT_ACT T1 ...
WHERE
((T1.APPT_REPT_FLG = 'Y' AND (T1.APPT_REPT_END_DT IS NULL OR T1.APPT_REPT_END_DT >= '00/00/0000') AND T1.TODO_PLAN_START_DT < '01/02/,)/.' OR T1.TODO_PLAN_START_DT >= '00/00/0000' AND T1.TODO_PLAN_START_DT < '01/02/,)/.' AND T1.APPT_REPT_FLG = 'N' OR T1.TODO_PLAN_START_DT < '00/00/0000' AND T1.TODO_PLAN_END_DT >= '00/00/0000' AND T1.APPT_REPT_FLG = 'N') AND
C'è ovviamente qualcosa che non va con alcuni letterali di data qui. Così Scommetto che sto facendo qualcosa di sbagliato. Qualsiasi idea di come farlo nel modo giusto? Grazie!
Soluzione
Ho trovato l'errore. I parametri di InvokeMethod devono essere passati in questo modo:
bcActivity.InvokeMethod("SetGridBeginEndDate", "10/01/2010", "10/31/2010");
Come le istanze temporanee dell'azione ripetere funziona in questo modo come previsto. Cool!