{"id":8612,"date":"2024-07-29T09:08:55","date_gmt":"2024-07-29T07:08:55","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/?post_type=ht_kb&#038;p=8612"},"modified":"2025-04-15T11:14:39","modified_gmt":"2025-04-15T09:14:39","slug":"obiekt-deweloperski-logical-data-type-ldt","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/obiekt-deweloperski-logical-data-type-ldt\/","title":{"rendered":"Obiekt deweloperski: Logical data type (LDT)"},"content":{"rendered":"<h3 id=\"wprowadzenie\" >Wprowadzenie<\/h3>\n<p>Aplikacja<em>\u00a0<a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/obiekty-deweloperskie\/\">Obiekty deweloperskie<\/a><\/em> pozwala na rejestrowanie i przegl\u0105danie obiekt\u00f3w deweloperskich r\u00f3\u017cnych typ\u00f3w. W niniejszym artykule opisany zosta\u0142 obiekt o typie <em>Logical data type\u00a0(LDT).<\/em><\/p>\n<h3 id=\"opis\" >Opis<\/h3>\n<p>W systemie mo\u017cna rozr\u00f3\u017cni\u0107 kilka typ\u00f3w danych:<\/p>\n<ul>\n<li><em>Pierwotny<\/em><\/li>\n<li><em>Z\u0142o\u017cony<\/em><\/li>\n<li><em>Logiczny &#8211; <\/em>s\u0105 u\u017cywane jako definicje atrybut\u00f3w w Business object, Part, Extension. W programowaniu interfejs\u00f3w s\u0105 one u\u017cywane do kontrolowania w\u0142a\u015bciwo\u015bci element\u00f3w interfejsu poprzez przypisany opis danych.<\/li>\n<\/ul>\n<p>Na zak\u0142adce\u00a0<em>Edytor<\/em> dost\u0119pne s\u0105 poni\u017csze pola:<\/p>\n<ul>\n<li><em>Opis danych<\/em> &#8211; wy\u015bwietla powi\u0105zany opis danych. Pole nie podlega edycji i jest wype\u0142nione tylko wtedy, gdy opis danych zosta\u0142 wprowadzony dla tego logicznego typu danych. Do logicznego typu danych przypisany jest dok\u0142adnie jeden opis danych LDT. Powi\u0105zanie jest tworzone poprzez identyczn\u0105 nazw\u0119 obiektu deweloperskiego(przestrze\u0144 nazw + nazwa).<\/li>\n<li><em>Typ <\/em>&#8211; pole pozwala na wyb\u00f3r typu danych. W systemie mo\u017cna rozr\u00f3\u017cni\u0107 kilka typ\u00f3w danych:\n<ul>\n<li><em>Pierwotny<\/em><\/li>\n<li><em>Z\u0142o\u017cony<\/em><\/li>\n<li><em>Logiczny<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\"><\/li>\n<\/ul>\n<p>Widok zmienia si\u0119 w zale\u017cno\u015bci od wybranego typu danych.<\/p>\n<h4 id=\"typ-pierwotny\" ><a id=\"tp\"><\/a>Typ pierwotny<\/h4>\n<p>Logiczny typ danych pierwotny jest oparty na pierwotnych typach Comarch ERP Enterprise, z kt\u00f3rych ka\u017cdy akceptuje tylko jedn\u0105 warto\u015b\u0107 elementarn\u0105. Poni\u017csza lista przedstawia wszystkie logiczne typy danych typu <em>pierwotny<\/em> oraz typy danych u\u017cywane w wygenerowanych klasach Java. Je\u015bli typ danych typu pierwotnego jest u\u017cywany bezpo\u015brednio w definicji atrybutu, to odpowiada on dok\u0142adnie kolumnie tabeli w bazie danych.<\/p>\n<table style=\"border-collapse: collapse; width: 118.333%; height: 391px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\"><strong>Typ pierwotny<\/strong><\/td>\n<td style=\"width: 22.9042%; height: 23px;\"><strong>Odpowiadaj\u0105cy typ Java<\/strong><\/td>\n<td style=\"width: 44.0543%; height: 23px;\"><strong>Dodatkowe pole<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">Binary<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">byte[]<\/td>\n<td style=\"width: 44.0543%; height: 23px;\"><span style=\"color: #ff0000;\"><em><span style=\"color: #000000;\">Maksymalna d\u0142ugo\u015b\u0107 &#8211; <\/span><\/em>\u00a0<\/span>zakres warto\u015bci 1-4000<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">Blob<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">com.cisag.pgm.datatype.CisBlobContainer<\/td>\n<td style=\"width: 44.0543%; height: 23px;\"><span style=\"color: #ff0000;\"><em><span style=\"color: #000000;\">Maksymalna d\u0142ugo\u015b\u0107 &#8211;<\/span><\/em> <\/span>ca\u0142kowita d\u0142ugo\u015b\u0107 liczby dziesi\u0119tnej; zakres warto\u015bci 1-100<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">boolean<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">Boolean<\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">byte<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">Byte<\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">char<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">Char (Unicode)<\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">Decimal<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">com.cisag.pgm.datatype.CisDecimal<\/td>\n<td style=\"width: 44.0543%; height: 23px;\"><span style=\"color: #ff0000;\"><span style=\"color: #000000;\"><em>Maksymalna d\u0142ugo\u015b\u0107<\/em> &#8211; ca\u0142kowita d\u0142ugo\u015b\u0107 liczby dziesi\u0119tnej; zakres warto\u015bci 1-100<\/span> <\/span><em>Miejsca po przecinku<\/em> &#8211; warto\u015b\u0107 w przedziale 0-20.System sprawdza, czy ca\u0142kowita d\u0142ugo\u015b\u0107 odpowiada sumie cyfr przed i po kropce.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">double<\/td>\n<td style=\"width: 22.9042%; height: 23px;\"><\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">float<\/td>\n<td style=\"width: 22.9042%; height: 23px;\"><\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">Guid<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">com.cisag.pgm.datatype.Guid<\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">int<\/td>\n<td style=\"width: 22.9042%; height: 23px;\"><\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">long<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">Long<\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">SBlob<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">com.cisag.pgm.datatype.CisStreamableBlob<\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">short<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">Short<\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">string<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">java.lang.String<\/td>\n<td style=\"width: 44.0543%; height: 23px;\"><span style=\"color: #ff0000;\"><span style=\"color: #000000;\"><em>Maksymalna d\u0142ugo\u015b\u0107<\/em> &#8211; ca\u0142kowita d\u0142ugo\u015b\u0107 znak\u00f3w zawiera si\u0119 w przedziale 1-2000<\/span><\/span><em>Wieloj\u0119zyczny<\/em> &#8211; ze wzgl\u0119du na wieloj\u0119zyczno\u015b\u0107 dla atrybutu mo\u017ce istnie\u0107 kilka t\u0142umacze\u0144. S\u0105 one przechowywane w dodatkowo wygenerowanym schemacie. Rejestrowanie i wy\u015bwietlanie atrybut\u00f3w wieloj\u0119zycznych w interfejsie musi by\u0107 odpowiednio zaprogramowane. Dodatkowe informacje w artykule <em><a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/obiekt-deweloperski-business-object\/\">Obiekt deweloperski: Business Object<\/a><\/em> rozdzia\u0142 <em>Atrybuty NLS<\/em>.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">Text<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">java.lang.String<\/td>\n<td style=\"width: 44.0543%; height: 23px;\">&#8211;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 18.0415%; height: 23px;\">Valueset<\/td>\n<td style=\"width: 22.9042%; height: 23px;\">Short<\/td>\n<td style=\"width: 44.0543%; height: 23px;\"><em>Zbi\u00f3r warto\u015bci<\/em> &#8211; specyfikacja zbioru warto\u015bci, na kt\u00f3rym oparty jest typ pierwotny. Je\u015bli logiczny typ danych jest u\u017cywany w Business Object, opis jest wy\u015bwietlany podczas wy\u015bwietlania identyfikatora. Logiczny typ danych jest zawarty na li\u015bcie <em>Wykaz zastosowania<\/em> zestawu warto\u015bci.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4 id=\"typ-logiczny\" ><a id=\"tl\"><\/a>Typ logiczny<\/h4>\n<p>Logiczny typ danych z wybranym typem logiczny reprezentuje funkcjonalne udoskonalenie innego logicznego typu danych. Mo\u017ce on by\u0107 oparty na wszystkich typach (pierwotnym, logicznym, z\u0142o\u017conym). Hierarchia dziedziczenia nie mo\u017ce zawiera\u0107 cykli. Dziedziczenie jest zasadniczo u\u017cywane tylko do definiowania w\u0142a\u015bciwo\u015bci GUI.<\/p>\n<p>Przyk\u0142ad dziedziczenia:<\/p>\n<ul>\n<li><em>Pierwotny typ danych<\/em> &#8211; pole informacje bez mo\u017cliwo\u015bci zmiany; pobierane na podstawie warto\u015bci z pola <em>Pochodz\u0105cy od<\/em><\/li>\n<li><em>Pochodz\u0105cy od<\/em> &#8211; okre\u015blenie logicznego typu danych jako obiektu bazowego. Logiczny typ danych jest zawarty na li\u015bcie <em>Wykaz zastosowania<\/em> obiektu bazowego.<\/li>\n<\/ul>\n<p>Pozosta\u0142e pole zwi\u0105zane z wybranym typem danych opisane zosta\u0142y w rozdziale <em><a href=\"#pierwotny\">Typ pierwotny<\/a><\/em>.<\/p>\n<h4 id=\"typ-zlozony\" ><a id=\"tz\"><\/a>Typ z\u0142o\u017cony<\/h4>\n<p>Ten typ danych jest oparty na typie <em>Part<\/em>. Umo\u017cliwia to definiowanie z\u0142o\u017conych atrybut\u00f3w w <em>Business object, Part, Extension<\/em>.<\/p>\n<ul>\n<li><em>Part &#8211; s<\/em>pecyfikacja cz\u0119\u015bci, do kt\u00f3rej odwo\u0142uje si\u0119 logiczny typ danych. Logiczny typ danych jest zawarty na li\u015bcie <em>Wykaz zastosowania<\/em> cz\u0119\u015bci.<\/li>\n<\/ul>\n<p>W przypadku typu logicznego u\u017cywany jest logiczny typ danych obiektu bazowego. W przypadku typu z\u0142o\u017conego integrowane s\u0105 atrybuty u\u017cywanej cz\u0119\u015bci.<\/p>\n<h5 id=\"uzycie-logicznych-typow-danych-w-elementach-wizualnych\" >U\u017cycie logicznych typ\u00f3w danych w elementach wizualnych<\/h5>\n<p>\u015acie\u017cka do logicznego typu danych jest przekazywana do elementu wizualnego w konstruktorze. S\u0142u\u017cy ona do okre\u015blenia logicznego typu danych i powi\u0105zanego <em>Data Description<\/em>. \u015acie\u017cka mo\u017ce odnosi\u0107 si\u0119 bezpo\u015brednio do logicznego typu danych lub do atrybutu w obiekcie biznesowym.<\/p>\n<p>Struktura \u015bcie\u017cek:<\/p>\n<ul>\n<li><em>Logiczny typ danych:<\/em><\/li>\n<\/ul>\n<p>&lt;przestrze\u0144 nazw&gt;:&lt;nazwa obiektu biznesowego&gt;.lt<\/p>\n<ol>\n<li>B.: com.cisag.app:Guid.lt<\/li>\n<\/ol>\n<ul>\n<li><em>Atrybut:<\/em><\/li>\n<\/ul>\n<p>&lt;namespace&gt;.&lt;BusinessObjectName&gt;:&lt;nazwa atrybutu&gt; lub<\/p>\n<p>&lt;namespace&gt;.&lt;BusinessObjectName&gt;:&lt;nazwa atrybutu&gt;.atr<\/p>\n<ol>\n<li>B.: com.cisag.app.general.obj.partner:name lub<\/li>\n<\/ol>\n<p>com.cisag.app.general.obj.partner:name.atr<\/p>\n<p>\u015acie\u017cka do atrybutu mo\u017ce by\u0107 r\u00f3wnie\u017c okre\u015blona w kategoriach wzgl\u0119dnych. Aby to zrobi\u0107, \u015bcie\u017cka do obiektu biznesowego musi by\u0107 okre\u015blona w widoku, do kt\u00f3rego dodawany jest element wizualny. \u015acie\u017cka wzgl\u0119dna do obiektu biznesowego mo\u017ce by\u0107 nast\u0119pnie okre\u015blona w elemencie wizualnym.<\/p>\n<ul>\n<li><em>Widok:<\/em><\/li>\n<\/ul>\n<p>&lt;namespace&gt;.&lt;BusinessObjectName&gt;:<\/p>\n<ol>\n<li>Przyk\u0142ad: com.cisag.app.general.obj.Partner:<\/li>\n<\/ol>\n<ul>\n<li><em>Element wizualny:<\/em><\/li>\n<\/ul>\n<p>.&lt;nazwa atrybutu&gt;<\/p>\n<ol>\n<li>np: .name<\/li>\n<\/ol>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">new com.cisag.pgm.gui.TextField( &#8222;03A013B4CB2F1E10B6768464960E0000&#8221;, &#8222;com.cisag.app:Description.lt&#8221;)<\/p>\n<p>new com.cisag.pgm.gui.View (&#8222;com.cisag.app.obj.BusinessObject:&#8221;) new com.cisag.pgm.gui.TextField( &#8222;03A013B4CB2F1E10B6768464960E0000&#8221;, &#8222;.description.lt&#8221;)<\/div><\/section>\n","protected":false},"author":28,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-8612","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-typy-obiektow-deweloperskich"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/8612","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/comments?post=8612"}],"version-history":[{"count":10,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/8612\/revisions"}],"predecessor-version":[{"id":28568,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/8612\/revisions\/28568"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/media?parent=8612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}