You can use the string serializer to send messages that contain string data. The main steps are:

  1. Configure the StringSerializer for the message body
  2. Set the code page, if appropriate
  3. Set the message body to a string variable

This example sends some UTF-8 data to an Apache® Kafka® topic:

using OpenEdge.Messaging.*.
using OpenEdge.Messaging.Kafka.*.

block-level on error undo, throw.

var RecordBuilder recordBuilder.
var KafkaProducerBuilder pb.
var IProducer producer.
var IProducerRecord record.
var longchar msgstr.

pb = cast(ProducerBuilder:Create("progress-kafka"), KafkaProducerBuilder).
pb:SetBootstrapServers("localhost:9092").
pb:SetBodySerializer(new StringSerializer()).
producer = pb:Build().
recordBuilder = producer:RecordBuilder.
recordBuilder:SetTopicName("utf-8-topic").
FIX-CODEPAGE(msgstr) = "utf-8".
msgstr = "संदेश भेजना आसान है". // UTF-8 string in Hindi
recordBuilder:SetBody(msgstr).
record = recordBuilder:Build().
producer:Send(record).

catch err as Progress.Lang.Error :
    message err:GetMessage(1) view-as alert-box.
end catch.