Siebel CSSBCActivity.SetGridBeginEndDate, ou como se todas as instâncias de uma repetição de ação em eScript?

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

  •  26-09-2019
  •  | 
  •  

Pergunta

Eu gostaria de obter todas as instâncias de uma repetição de ação através de um eScript bcAction consulta.

O que eu já encontrei sobre a repetição de ações:

  • Eu crie uma repetição de ação, repita intervalo = diárias
  • Eu posso ver várias instâncias para esta ação no Siebel calendário de aplicação.
  • Se eu consulta de todas as ações por eScript, eu recebo uma única linha para a repetição da ação, uma espécie de "modelo" de todas as instâncias de repetição
  • Se eu modificar uma ação específica instância através da Siebel calendário, uma nova linha é criada para essa instância.
  • Se a consulta de todas as ações novamente, eu recebo 2 acções que se relacionam à repetição de ação.O "modelo" e a modificação de instância.
  • Quando eu abrir uma inalterado ação de repetição de instância em Siebel calendário e abrir o Menu "Ajuda -> Sobre o Registro...", eu vejo que a linha de identificação da instância é de alguma forma especial, como uma temporário rowid: 8SIA-81UT810/10/2010

Tão longe, tão bom.Agora, eu gostaria de obter todas as instâncias de repetição de ação em eScript, independentemente de terem sido alterados ou não.Assim como no Siebel calendário de aplicação.

No Bookshelf eu encontrei um método promissor:

CSSBCActivity.SetGridBeginEndDate(startDate, endDate)

Ele deve definir o componente de negócios em modo de calendário.A minha esperança é que, ao fazer isso, para todos os repetição de ação de instâncias de tempo determinado quadro de temporários de ação de linhas serão criados, o que eu posso consultar em seguida.

var args = new Array(2);
args[0] = "10/01/2010";
args[1] = "10/31/2010";
bcActivity.InvokeMethod("SetGridBeginEndDate", args);
...
bcACtivity.ExecuteQuery(ForwardOnly);

No entanto, executar a consulta falha com uma exceção "00/00/0000 não pode ser convertido para um carimbo de data / hora".Tracei a consulta e encontrei o seguinte:

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

Obviamente que há algo de errado com alguns literais de data aqui.Então, eu aposto que eu estou fazendo algo de errado.Alguma idéia de como fazer isso direito?Obrigado!

Foi útil?

Solução

Encontrei o erro.Os parâmetros de InvokeMethod deve ser passado como esta:

bcActivity.InvokeMethod("SetGridBeginEndDate", "10/01/2010", "10/31/2010");

Chegando a instâncias temporárias de repetição de ação funciona desta maneira, como o esperado.Legal!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top