É sexta-feira.
Sem vontade de trabalhar ... deixe-me convidá-la para o chá! Então, quais são as opções para informar?
Devo chamá-la, posso mensagem dela, vou enviar-lhe um pedido de reunião?
Afinal eu sou um cara tecnólogo .. Então, eu decidi escrever um relatório que envia uma solicitação de reunião para ela, em vez de criar um pedido de reunião normal no Microsoft Outlook .
Missão : Enviar um pedido de reunião antes de 17:00 convidá-la para o chá ...
Para me ajudar na minha missão eu tenho:
1 ... Classe CL_APPOINTMENT (ECC 6.2) -> o que ajuda a enviar um pedido de reunião para o Outlook a partir do sistema SAP.
2 ... OLE2_OBJECT -> Em vez de informar os usuários por declaração mensagem normal. . Tal como mensagem 'pedido de reunião send' tipo 'I' Eu queria fazer sistema SAP para falar e dizer a mim que É como:.. Texto para conversão de voz
Vamos começar com a segunda parte:
. TEXT para conversão de voz Se você não tem certeza do que é OLE, então deixe-me dizer-lhe em breve:. Sua usado para falar com o servidor de apresentação O processador ABAP normalmente buffers todas as declarações OLE sucessivas e envia-los em um pacote para o servidor de apresentação e ela será executada lá. Como: discurso, excel integração etc ...
No nosso exemplo, eu criei o objeto como a seguir:
criar o objeto voz "SAPI.SpVoice '.
Confira o código fonte abaixo:
enquanto a execução entra no "tempo do fim encontro" menos do que a reunião de início. A bela voz vai ler a mensagem de erro para você.
(Criar um relatório em nome SE38: " ZTST_SCHEDULE_MEETING " e copie e cole o código abaixo)
* & * -----------------------
Relatório ZTST_SCHEDULE_MEETING
*
& * & ---------------- ------- *
* copiar os elementos de texto
* p_date Data
* P_MEND Reunião Final
nome * P_MNAME Reunião
* P_MST Reunião Start
*&
*&———————————————————————*
report ztst_schedule_meeting .
tables : zmeetings .
include ole2incl .
parameters : p_mname type char20 .
parameters : p_date type dats .
parameters : p_mst type sy - uzeit .
parameters : p_mend type sy - uzeit .
data : ole type ole2_object ,
voice type ole2_object ,
text tipo string .
dados : lv_time tipo t .
na tela de seleção .
criar o objeto voz "SAPI.SpVoice ' .
se p_mend <p_mst .
text = 'Data Final deve ser inferior a data da reunião começar.' .
método chamada de voz 'Fala' = ole
exportação # 1 = texto .
mensagem 'Data Final deve ser inferior a data da reunião começar ' ' E ' .
endif .
Bem, é 14:30. Eu tinha apenas 2 horas e meia para a esquerda para enviar um pedido de reunião. Depois de pesquisar no Google e SDN eu tenho a minha arma "CL_APPOINTMENT classe" final.
Felizmente o meu sistema ERP foi ECC 6.2 e o abaixo OSS observa onde já instalado (se não tente instalá-lo usando o código SNOTE T.
Número | Texto curto da nota |
1364539 | Exibição incorreta de documentos ICS |
1353329 | documento iCalendar que é enviado é processado incorretamente |
1357483 | Título de nomeação enviado está incorreto |
1369864 | Compromisso de dia inteiro não aparece corretamente no Outlook |
Finalmente, em poucos minutos eu estava pronto com o meu código: aqui está o código fonte final
(Substitua todo o código-fonte usando o código abaixo agora para nome do relatório já criado: " ZTST_SCHEDULE_MEETING)
************************ Enviar um pedido de reunião ********************** ******
* & * -----------------------
Relatório ZTST_SCHEDULE_MEETING
*
& * & ---------------- ------- *
* copiar os elementos de texto
* p_date Data
* P_MEND Reunião Final
nome * P_MNAME Reunião
* P_MST Reunião Start
*&
*&———————————————————————*
REPORT ZTST_SCHEDULE_MEETING .
tables : zmeetings .
include ole2incl .
include <cntn01> .
type-pools : sccon .
PARAMETERS : p_mname type char40 .
PARAMETERS : p_date type dats .
PARAMETERS : p_mst type sy - uzeit .
PARAMETERS : p_mend type sy - uzeit .
“Let's enviar um pedido de reunião para outra
data : correio tipo text40 .
* Fornecer selecione a opção para entrar vários participantes
SELEÇÃO-SCREEN : BEGIN OF BLOCK org .
seleccionar-opções : e-mail mails sem intervalos default 'rajuborda1@gmail.com .
SELEÇÃO DE TELA : FIM DO BLOCO org .
dados lo_appointment tipo ref
linha de cabeçalho .
dados lt_text tipo so_txttab .
dados ls_text como linha de lt_text .
dados lv_location como scsappt - quarto .
dados lo_send_request tipo ref para cl_bcs .
dados lv_sent_to_all digite os_boolean .
dados : ole tipo ole2_object ,
voz ole2_object ,
digite o texto string .
DATA : LV_TIME TIPO T .
dados : lv_title tipo SC_TXTSHOR .
SELEÇÃO em tela .
criar o objeto voz "SAPI.SpVoice ' .
se p_mend <p_mst .
text = 'Data Final deve ser inferior a data da reunião começar.' .
método de chamada de voz 'Fala' = ole
exportação # 1 = texto .
mensagem 'Data Final deve ser inferior a data de início da reunião ' ' E ' .
endif .
START-OF-SELECTION .
criar objeto lo_appointment .
* Adicione vários participantes
laço no e-mail .
claro ls_participant .
lv_address swc_create_object 'endereço' espaço .
ls_address_container swc_set_element 'AddressString' e-mail - baixo .
ls_address_container swc_set_element 'TypeId' 'U' .
lv_address swc_call_method 'Criar ' ls_address_container .
cheque sy - SUBRC = 0 .
** obter a chave e tipo de objeto
swc_get_object_key lv_address ls_participant - objkey .
cheque sy - SUBRC = 0 .
swc_get_object_type lv_address ls_participant - objtype .
check sy - subrc = 0 .
move sccon_part_sndmail_with_ans to ls_participant - send_mail .
ls_participant - comm_mode = 'INT' .
lo_appointment -> add_participant ( participant = ls_participant ).
endloop .
* Apppointment amostra para específico date/time
lo_appointment -> set_date ( date_from = p_date
time_from
time_from = p_mst
date_to
date_to = p_date
time_to
time_to = p_mend ).
* Certifique nomeação aparecer "ocupado"
lo_appointment -> set_busy_value ( sccon_busy_busy .)
* Localização
lo_appointment -> set_location_string ( 'Location' ).
* Set Organizador
lo_appointment -> set_organizer ( sy - uname ).
* "Tipo de reunião" (valor escolhido da tabela SCAPPTTYPE)
lo_appointment -> set_type ( "ausente" .)
* fazer deste um evento de dia inteiro
lo_appointment -> SET_VIEW_ATTRIBUTES ( SHOW_ON_TOP = 'X' .)
* Defina Reunião corpo do texto
ls_text = p_mname . "'Este é o corpo do texto de . Nomeação '
anexar ls_text para lt_text .
lv_title = p_mname .
lo_appointment -> set_text ( lt_text .)
* Defina Reunião Assunto
lo_appointment -> set_title ( lv_title .)
* Importante para definir este para o espaço. Caso contrário, a SAP vai enviar um e-mail não userfriendly
lo_appointment - save ( send_invitation = espaço ).
* Agora que temos o compromisso, podemos enviar uma boa para outlook por sw
* comichão para BCS
lo_send_request = lo_appointment -> create_send_request () .
* não pedir recibos de leitura / entrega
lo_send_request -> set_status_attributes ( i_requested_status = 'N'
i_status_mail = 'N'
).
* Enviar para o mundo
lv_sent_to_all = lo_send_request - > send ( i_with_error_screen = 'X' ).
efetivar o trabalho e esperar .
text = 'Pedido de reunião foi Envie Boa sorte amigo.' .
método chamada de voz 'Fala' = ole
exportação # 1 = texto .
mensagem "Pedido de reunião foi enviar, Boa sorte (* = *). ' ' I ' .
************************** Fim de código ********************* *******
Não copiar o elemento de texto a partir da seção de comentários do relatório para torná-lo legível.
Após a execução, você pode ver a mensagem de informações. Também Text to Speech OLE método converte a mensagem em voz para que você possa ouvi-lo.
Você pode ver o e-mail (pedido de reunião), que está sendo enviado para o seu parceiro de chá usando o código de transação:. SOST trabalho Fundo capta automaticamente o e-mail e enviar, a intervalos regulares, mas como eu não tinha tempo eu Selecione o pedido e usar o botão Executar acima -lo para enviá-lo imediatamente.
Agora você pode ver o pedido de reunião no Outlook.
Fonte: http://sapignite.com/archives/2480