Jump to content

Recommended Posts

Posted (edited)

Bom dia.

Estou a fazer um desenvolvimento para enviar uma SMS quando um dosser é criado. Eu consegui enviar a primeira SMS mas agora não envia queixando-se da primary key. 

Já tentei com o código de exemplo que aparece na net mas diz que a classe não está definida?
O tal código que aparece na net é este:
 

*--- Código para envio de SMS no PHC CS
LOCAL lcTelefone, lcMensagem, loSMS

*--- 1. Definir o número de telefone (obrigatório com indicativo, ex: +351)
lcTelefone = ALLTRIM(ft.telefone) && Exemplo: telefone do cliente no ft
IF EMPTY(lcTelefone)
    RETURN
ENDIF

*--- 2. Definir o texto da mensagem
lcMensagem = "Olá, a sua encomenda " + ALLTRIM(ft.nrdoc) + " foi gravada com sucesso."

*--- 3. Chamar a classe interna de envio SMS do PHC
loSMS = CREATEOBJECT("phcSMS")
IF TYPE("loSMS") = "O"
    *-- loSMS.SendSMS(Telefone, Mensagem, [NomeEntidade], [IDEntidade], [TipoEntidade])
    loSMS.SendSMS(lcTelefone, lcMensagem, "Cliente", ft.no, "FT")
ENDIF

O código de teste que enviou a primeira mas na segunda queixa-se da Primary Key é:

 

LOCAL lcTel, lcNome, lcMsg, lcSQL

* 1) Só envia se NDOS = 1
IF bo.ndos # 1
    RETURN .F.
ENDIF

* 2) Preparar dados do cliente
lcTel  = ALLTRIM(CHRTRAN(cl.tlmvl, "+- ", ""))   && remove + e - simples
lcNome = ALLTRIM(cl.Nome)

IF EMPTY(lcTel)
    RETURN .F.
ENDIF

* 3) Mensagem da SMS
lcMsg = "A sua encomenda " + ALLTRIM(TRANSFORM(bo.obrano)) + ;
        " foi enviada. Obrigado."

* 4) Construir INSERT para tabela interna SMS
TEXT TO lcSQL TEXTMERGE NOSHOW
INSERT INTO sms
    (telemovel, data, hora, nome, mensagem, destinatario, enviado, marcada, utilizador)
VALUES
    ('<<lcTel>>',
     GETDATE(),
     CONVERT(char(8), GETDATE(), 108),
     'Envio de encomenda',
     '<<lcMsg>>',
     '<<lcNome>>',
     0,
     0,
     'Teste')
ENDTEXT

* 5) Executar SQL via função PHC
u_sqlexec(lcSQL, [cur_sms])

IF USED("cur_sms")
    USE IN cur_sms
ENDIF

RETURN .T.

O erro:

Erro : [Microsoft][SQL Server Native Client 11.0][SQL Server]Violation of PRIMARY KEY constraint 'pk_sms'. Cannot insert duplicate key in object 'dbo.sms'. The duplicate key value is (                         ).

Agradecia imenso se alguém conseguisse ajudar.

Edited by JoaoG

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.