Siebel CSSBCActivity.SetGridBeginEndDate o come ottenere tutte le istanze di un'azione di ripetizione in eScript?

StackOverflow https://stackoverflow.com/questions/3821766

  •  26-09-2019
  •  | 
  •  

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!

È stato utile?

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!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top