# Accents characters in script

**URL:** https://talk.remobjects.com/t/accents-characters-in-script/16138
**Category:** Relativity Server
**Created:** [April 12, 2018, 6:40pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138 "2018-04-12T18:40:17Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![joroberto](https://talk.remobjects.com/letter_avatar_proxy/v4/letter/j/ecae2f/32.png) [@joroberto](https://talk.remobjects.com/u/joroberto)
#### Post date: [April 12, 2018, 6:40pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/1 "2018-04-12T18:40:18Z")

</div>

Hello.

I have two problems using RelativityServer.

1 - In this script, I’m using accents in messages but in client (Delphi) accents  
are not shown.

```
 function beforeProcessDeltaChange(delta, change, wasRefreshed, canRemove)
 {
 	if (change.isDelete) {
 	    service = "SERVICO= " + change.oldValues['id_servico'] + "-"+change.oldValues['servico'];
 	    if (change.oldValues['id_servico'] == 1)
 	     {
 	        service = "SERVICO=" + change.oldValues['servico'];	
 	        msg = "Violação de regras no servidor: #SERVICO: Não pode ser excluido!"
 	        .replace("#SERVICO", service);
 	 	    fail(msg);}
 	}
 }

```

 ![image](https://talk.remobjects.com/uploads/default/original/2X/f/fad50e4a901b8023b29e8f520d9e5160817fecb7.png)

2 - How do I handle server errors? I would like to show  
messages to the user according to the error.

---

<div class="post-metadata">

### Author: ![EvgenyK](https://talk.remobjects.com/user_avatar/talk.remobjects.com/evgenyk/32/16_2.png) [@EvgenyK](https://talk.remobjects.com/u/EvgenyK)
#### Post date: [April 13, 2018, 8:33am UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/2 "2018-04-13T08:33:39Z")

</div>

> 1 - In this script, I’m using accents in messages but in client (Delphi) accents are not shown.

Relativity writes messages in delta changes as AnsiString.  
Logged as 79944.  
as a temporary workaround - you can write meg in server events in UTF8 format.

> 2 - How do I handle server errors? I would like to show messages to the user according to the error.

Are you using `TDAVCLReconcileProvider`/`TDAFMXReconcileProvider` on client side?

---

<div class="post-metadata">

### Author: ![joroberto](https://talk.remobjects.com/letter_avatar_proxy/v4/letter/j/ecae2f/32.png) [@joroberto](https://talk.remobjects.com/u/joroberto)
#### Post date: [April 13, 2018, 12:41pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/3 "2018-04-13T12:41:44Z")

</div>

> [@EvgenyK](#):
>
> as a temporary workaround - you can write meg in server events in UTF8 format.

Example ??

> [@EvgenyK](#):
>
> you using `TDAVCLReconcileProvider`/`TDAFMXReconcileProvider` on client side?

TDAVCLReconcileProvider

---

<div class="post-metadata">

### Author: ![EvgenyK](https://talk.remobjects.com/user_avatar/talk.remobjects.com/evgenyk/32/16_2.png) [@EvgenyK](https://talk.remobjects.com/u/EvgenyK)
#### Post date: [April 13, 2018, 12:53pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/4 "2018-04-13T12:53:10Z")

</div>

> [@joroberto](#):
>
> Violação de regras no servidor: #SERVICO: Não pode ser excluido!

try to specify this error like

> `ViolaÃ§Ã£o de regras no servidor: #SERVICO: NÃ£o pode ser excluido!`

> [@joroberto](#):
>
> TDAVCLReconcileProvider

try to set `RemoteDataAdapter.FailureBehavior` to `fbShowReconcile` . in this case, error message won’t be shown

---

<div class="post-metadata">

### Author: ![joroberto](https://talk.remobjects.com/letter_avatar_proxy/v4/letter/j/ecae2f/32.png) [@joroberto](https://talk.remobjects.com/u/joroberto)
#### Post date: [April 13, 2018, 1:11pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/5 "2018-04-13T13:11:50Z")

</div>

> [@EvgenyK](#):
>
> try to set RemoteDataAdapter.FailureBehavior to fbShowReconcile . in this case, error message won’t be shown

Could you send me an example of how can I set up a “Form Reconcile” according to  
with my needs, I looked in the examples folder of DA and I did not find anything on the subject.

I Need:  
Translate from English to Portuguese,  
in some cases I will not show anything, just configure  
what to do according to error.

In short, I need to make my own reconcile form.

---

<div class="post-metadata">

### Author: ![EvgenyK](https://talk.remobjects.com/user_avatar/talk.remobjects.com/evgenyk/32/16_2.png) [@EvgenyK](https://talk.remobjects.com/u/EvgenyK)
#### Post date: [April 13, 2018, 1:15pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/6 "2018-04-13T13:15:59Z")

</div>

create own descendant of TDABaseReconcileProvider, where implement `Show` method

```auto
  TMyReconcileProvider = class(TDABaseReconcileProvider)
  public
    procedure Show(RemoteDataAdapter: TDABaseDataAdapter; var AFailedDeltaList: TDADeltaChangeList; aTableList: TDADataTableList); override;
  end;

```

you can use `uDAReconcileDialog.pas` and `uDAReconcileDialogDetails.pas` as examples of it.

by other hand, you can show error w/o ReconcileProvider.  
RDA has some events where you can change default behavior of it.

---

<div class="post-metadata">

### Author: ![joroberto](https://talk.remobjects.com/letter_avatar_proxy/v4/letter/j/ecae2f/32.png) [@joroberto](https://talk.remobjects.com/u/joroberto)
#### Post date: [April 13, 2018, 1:29pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/7 "2018-04-13T13:29:28Z")

</div>

> [@EvgenyK](#):
>
> by other hand, you can show error w/o ReconcileProvider.
> 
> RDA has some events where you can change default behavior of it.

This is what I need, showing the error to  
custom mode user …

Send me an example of how I catch the server error and  
I do the customization.

---

<div class="post-metadata">

### Author: ![EvgenyK](https://talk.remobjects.com/user_avatar/talk.remobjects.com/evgenyk/32/16_2.png) [@EvgenyK](https://talk.remobjects.com/u/EvgenyK)
#### Post date: [April 13, 2018, 1:42pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/8 "2018-04-13T13:42:42Z")

</div>

you can use `OnBeforeProcessFailures` event.

just grab `Message` field from `aFailedDeltas[x]` in loop

```auto
procedure TForm83.DARemoteDataAdapter1BeforeProcessFailures(Sender: TObject;
  TDADataTableList; aFailedDeltas: TDADeltaChangeList;
  var aFailureBehavior: TDAFailureBehavior);
begin
  raise MyException.Create('');
end;

```

see more details how things work at `TDABaseDataAdapter.ThrowFailures`

---

<div class="post-metadata">

### Author: ![joroberto](https://talk.remobjects.com/letter_avatar_proxy/v4/letter/j/ecae2f/32.png) [@joroberto](https://talk.remobjects.com/u/joroberto)
#### Post date: [April 13, 2018, 2:07pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/9 "2018-04-13T14:07:24Z")

</div>

I looked in the documentation I did not see anything about it …  
have you ot demos ? or can you send me an example of how  
to handle this event?

---

<div class="post-metadata">

### Author: ![EvgenyK](https://talk.remobjects.com/user_avatar/talk.remobjects.com/evgenyk/32/16_2.png) [@EvgenyK](https://talk.remobjects.com/u/EvgenyK)
#### Post date: [April 13, 2018, 2:15pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/10 "2018-04-13T14:15:04Z")

</div>

try to use

```auto
procedure TForm83.DARemoteDataAdapter1BeforeProcessFailures(Sender: TObject;
  TDADataTableList; aFailedDeltas: TDADeltaChangeList;
  var aFailureBehavior: TDAFailureBehavior);
var
  mes: String;
  i:integer;
begin
  mes := '';
  for i := 0 to aFailedDeltas.Count-1 do
    mes := mes+ aFailedDeltas[i].Message+sLineBreak;
  raise Exception.Create('Failures:'+sLineBreak+mes);
end;

```

---

<div class="post-metadata">

### Author: ![joroberto](https://talk.remobjects.com/letter_avatar_proxy/v4/letter/j/ecae2f/32.png) [@joroberto](https://talk.remobjects.com/u/joroberto)
#### Post date: [April 13, 2018, 4:26pm UTC](https://talk.remobjects.com/t/accents-characters-in-script/16138/11 "2018-04-13T16:26:55Z")

</div>

> [@EvgenyK](#):
>
> var  
> mes: String;  
> i:integer;  
> begin  
> mes := ‘’;  
> for i := 0 to aFailedDeltas.Count-1 do  
> mes := mes+ aFailedDeltas[i].Message+sLineBreak;  
> raise Exception.Create(‘Failures:’+sLineBreak+mes);

Thanks for the help … waiting for the correction of the relativity server (UTF8)

I have another question, but I’ll create another topic.
