Hi @Michael Davidovich !
you hit exactly what I addressed in in my recent article
  The bewitched line terminator

As long as you get (text-) files from your own OS the default is OK
BUT: if you work cross OS platforms - rather likely for CSP pages -
the approach of  
%CSP.BinaryStream is the best for import.

For output stream you have to decide based on the expected target OS.

My personal trigger to that subject was file transfer between
WIN as Docker host and a Container (Ubuntu) causing a lot of  confusion until detected.
 

you describe 2 different record layouts that reside within the same storage 
#1 - just a name
#2 - a name + a "transferred" property

depending on the situation you use either layout #1  or layout #2 for INSERT
reading might be OK for layout #2 in both cases.

Caché once had a somewhat similar sample with Person
and Employee extending Person. 
available here: https://docs.intersystems.com/iris20241/csp/docbook/Doc.View.cls?KEY=ASAMPLES
this Repo:
https://github.com/intersystems/Samples-Data/tree/master/cls/Sample

Hi @Daniel Aguilar 
for every DB you have a default collation that is tied to DB:
you can see it in SMP  System > Configuration > Local Databases > Database Properties

this is the standard.
If the collation of your source server is Spanish, German, Fench, , .... 
the DB may have used this national collation as default.

On your target serve you need to have this collation to be installed.
in SMP  System > Configuration > Locale Definitions you see what is installed on your Caché instance

You may need to add the missing collation table to your Caché instance:



 

there is a basic misunderstanding:

inside the <CSP:WHILE...> block you are in HTML context
but you issue instead JavaScript >>>> which just prints it out.
To illustrate this see this simple example:
But changing to JS_context solved my simple demo with alert();
 

<csp:WHILE CONDITION="resultSet.Next()">     

 <!-- xValues.push(#(resultSet.Get("StatsDate"))#)
  yValues.push(#(resultSet.Get("Value"))#) -->
  
 <p>#(resultSet.Get("StatsDate"))#<br>#(resultSet.Get("Value"))#</p>
 
 <script LANGUAGE="JavaScript">
 alert(#(resultSet.Get("StatsDate"))#+'>>>'+#(resultSet.Get("Value"))#);
 </script>

</csp:WHILE>

I just learned here that "NAMED PIPE" is significantly different in

  • UNIX/Linux where it is just a kind of file structure and
  • Windows where it offers the duplex feature I was looking for

So my workaround (by accident) turns out to be better for my needs than the Linux FIFO feature
as I'm able also to read partial lines and don't need newlines or similar as separators.

it was kind of Lucky Punch