Cara Membuat Model Template

Setelah file berhasil diimpor ke dalam sistem, data akan langsung diproses. Namun, karena tiap distributor bisa menggunakan sistem eksternal dengan format Excel yang berbeda-beda—baik dari segi struktur maupun nama kolom—sistem perlu solusi yang fleksibel. Tentunya, portal tidak bisa membatasi pengguna dengan format file tertentu seperti pada SAP atau DMS karena hal itu akan menyulitkan proses integrasi.

Begitu pula saat pengguna ingin mengekspor data: mereka harus bisa menentukan sendiri format Excel yang dibutuhkan, terutama jika data tersebut akan digunakan di sistem lain.

Sebagai solusinya, portal menghadirkan fitur ModelMapper atau ModelTemplate. Fitur ini bisa diakses melalui menu Model Templates.

Cara Membuat Model Template Baru

Step 1. Buka menu Model Templates.

Step 2. Pilih Add New Model Template.

Step 3. Isi data mengenai model template baru yang akan dibuat seperti :

  • Integrasi

  • Module

  • Metode

  • Json Format

  • Response Keys

Beberapa hal penting yang perlu diperhatikan saat membuat Model Template:

  1. Field yang ditandai dengan tanda * wajib diisi.

  2. Distributor harus sudah memiliki minimal satu integrasi aktif sebelum dapat membuat template.

  3. Model Template dibedakan berdasarkan kombinasi Integration, Module, dan Method. Sistem tidak mengizinkan pembuatan template dengan kombinasi yang sama lebih dari satu kali.

  4. Setiap integrasi (aplikasi) memiliki Model Template-nya sendiri, meskipun modul dan metodenya sama.

    • Contoh: Jika integrasi DMS sudah memiliki template untuk SalesOrder-Export, maka integrasi lain seperti External harus membuat template SalesOrder-Export-nya sendiri.

  5. Setelah template dibuat, nilai Integration, Module, dan Method tidak bisa diubah untuk mencegah duplikasi.

  6. Response Keys selalu diisi dengan:

    jsonSalinEdit{"MappingResultType":"List","RootProperty":"data"}
  7. Cara membuat format JSON klik disini.


Mengelola Template yang Sudah Dibuat

  • Untuk mengedit JSON pada template yang sudah ada, pengguna bisa klik ikon edit/pensil pada daftar Model Template.

    Tombol Edit Model Template
    Edit Model Template
  • Untuk melihat detail lengkap sebuah template, cukup klik barisnya di daftar template.

    Daftar Model Template
    Detail Model Template

  • Untuk menghapus model template yang sudah dibuat, dapat dilakukan dari beberapa laman yaitu:

    • Delete dari Daftar Model Template

    • Delete dari Detail Model Template

Cara Membuat Model Template (JsonFormat)

1. SalesOrder(Item)

Berikut adalah tabel penjelasan property SalesOrder(Item) yang dibutuhkan dan dapat digunakan pada saat membuat Model Template.

Nama Property
Tipe Data
Penjelasan
Dibutuhkan/Wajib

OriginId

STRING

Id dari data. Jika tidak ada id, maka dapat menggabungkan beberapa data pada excel sehingga unik.

YA

OrderNo

STRING

Nomor pesanan penjualan

YA

OrderDate

Date

Tanggal pesanan penjualan

YA

Status

STRING

Status pesanan penjualan

YA

CustomerId

STRING

Id Pelanggan

YA

CustomerCode

STRING

Kode pelanggan

YA

CustomerName

STRING

Nama pelanggan

YA

ProductCode

STRING

Kode produk

YA

ProductName

STRING

Nama produk

YA

Price

FLOAT

Harga produk

YA

TotalQuantity

FLOAT

Total kuantitas

YA

LineTotal

FLOAT

Total penjualan

YA

SupplierId

STRING

Id Supplier (tidak perlu di excel, hanya modelmapper saja). Dapat dilihat di contoh.

YA

DailyVisitItemId

STRING

Id DailyVisit untuk menandakan bahwa pesanan penjualan ini efective call atau tidak

TIDAK

CustomerLatitude

STRING

Latitude lokasi pelanggan

TIDAK

CustomerLongitude

STRING

Longitude lokasi pelanggan

TIDAK

Channel

STRING

Nama channel pelanggan

TIDAK

City

STRING

Kota

TIDAK

District

STRING

Kecamatan

TIDAK

Province

STRING

Provinsi

TIDAK

QuantityL

FLOAT

Kuantitas L

TIDAK

QuantityM

FLOAT

Kuantitas M

TIDAK

QuantityS

FLOAT

Kuantitas S

TIDAK

UnitL

STRING

Nama satuan L

TIDAK

UnitM

STRING

Nama satuan M

TIDAK

UnitS

STRING

Nama satuan S

TIDAK

DiscountItem

FLOAT

Diskon item (nominal)

TIDAK

DiscountOrder

FLOAT

Diskon order (nominal)

TIDAK

Tax

FLOAT

Pajak (nominal)

TIDAK

📌 ModelMapper Import (SalesOrder)

Pada proses import menggunakan ModelMapper, kolom di sebelah kiri menunjukkan nama property pada sistem portal (konsolidasi data), sedangkan bagian kanan dengan format $.data[#]. mengacu pada property dari file Excel yang diimpor.

 { 
   "OriginId": {
     "JsonPath": "$.data[#].Id"
   },
   "OrderNo": {
     "JsonPath": "$.data[#].OrderNumber"
   },
   "OrderDate": {
     "JsonPath": "$.data[#].Tanggal",
     "Type": "DateTime",
     "DateFormatFrom": "d/M/yyyy",
     "DateFormatTo": "MM/dd/yyyy"
   },
   "CustomerId": {
     "JsonPath": "$.data[#].C_Id"
   },
   "DailyVisitItemId": {
     "JsonPath": "$.data[#].DailyVisitItemId"
   },
   "CustomerCode": {
     "JsonPath": "$.data[#].C_Code"
   },
   "CustomerName": {
     "JsonPath": "$.data[#].C_Name"
   },
   "CustomerLatitude": {
     "JsonPath": "$.data[#].C_Latitude",
     "DefaultValue": 0
   },
   "CustomerLongitude": {
     "JsonPath": "$.data[#].C_Longitude",
     "DefaultValue": 0
   },
   "City": {
     "JsonPath": "$.data[#].Kota"
   },
   "District": {
     "JsonPath": "$.data[#].Kecamatan"
   },
   "Province": {
     "JsonPath": "$.data[#].Provinsi"
   },
   "ProductCode": {
     "JsonPath": "$.data[#].P_Code"
   },
   "ProductName": {
     "JsonPath": "$.data[#].P_Name"
   },
   "Price": {
     "JsonPath": "$.data[#].P_Price",
     "DefaultValue": 0
   },
   "TotalQuantity": {
     "JsonPath": "$.data[#].TotalQuantity",
    "DefaultValue": 0
   },
   "QuantityL": {
     "JsonPath": "$.data[#].QL",
     "DefaultValue": 0
   },
   "QuantityM": {
     "JsonPath": "$.data[#].QM",
     "DefaultValue": 0
   },
   "QuantityS": {
     "JsonPath": "$.data[#].QS",
     "DefaultValue": 0
   },
   "UnitL": {
     "JsonPath": "$.data[#].UnitL"
   },
   "UnitM": {
     "JsonPath": "$.data[#].UnitM"
   },
   "UnitS": {
     "JsonPath": "$.data[#].UnitS"
   },
   "DiscountItem": {
     "JsonPath": "$.data[#].DiscountItem",
     "DefaultValue": 0
   },
   "DiscountOrder": {
     "JsonPath": "$.data[#].DiscountOrder",
     "DefaultValue": 0
   },
   "Tax": {
     "JsonPath": "$.data[#].Pajak",
     "DefaultValue": 0
   },
   "LineTotal": {
     "JsonPath": "$.data[#].Linetotal",
     "DefaultValue": 0
   },
   "StatusOrder": {
     "JsonPath": "$.data[#].Status",
     "DefaultValue": "Active"
   },
   "Status": {
     "DataExpression": "StatusOrder",
     "FormatExpression": "\"[0]\"!=\"Active\"?\"Cancelled\":\"Active\""
   },
   "SupplierId": {
     "JsonPath": "$.data[#].SupplierId"
   }
 }

📌 ModelMapper Export (SalesOrder) Dalam proses ekspor, properti di sisi kiri mengacu pada kolom Excel yang akan dihasilkan, sedangkan properti di sisi kanan setelah “$.data[#].” merujuk pada sumber data dari portal (data yang telah dikonsolidasikan).

 { 
   "Id": {
     "JsonPath": "$.data[#].OriginId"
   },
   "NomorOrder": {
     "JsonPath": "$.data[#].OrderNo"
   },
   "TanggalPesanan": {
     "JsonPath": "$.data[#].OrderDate"
  },
  "IdPelanggan": {
    "JsonPath": "$.data[#].CustomerId"
  },
  "KodePelanggan": {
    "JsonPath": "$.data[#].CustomerCode"
  },
  "NamaPelanggan": {
    "JsonPath": "$.data[#].CustomerName"
  },
  "Latitude": {
    "JsonPath": "$.data[#].CustomerLatitude"
  },
  "Longitude": {
    "JsonPath": "$.data[#].CustomerLongitude"
  }
 }

2. DailyVisit(Item)

Berikut adalah tabel penjelasan property DailyVisit(Item) yang dibutuhkan dan dapat digunakan pada saat membuat ModelMapper.

Nama Property
Tipe Data
Penjelasan
Dibutuhkan/Wajib

OriginId

STRING

Id dari data. Jika tidak ada id, maka dapat menggabungkan beberapa data pada excel sehingga unik.

YA

Date

DATE

Tanggal kunjungan

YA

EmployeeId

STRING

Id pegawai

YA

EmployeeName

STRING

Nama pegawai

YA

CustomerId

STRING

Id Pelanggan

YA

CustomerName

STRING

Nama pelanggan

YA

CheckInLatitude

FLOAT

Latitude lokasi kunjungan

YA

CheckInLongitude

FLOAT

Longitude lokasi kunjunga

YA

TotalSales

FLOAT

Total penjualan

YA

SupplierId

STRING

Id Supplier (tidak perlu di excel, hanya modelmapper saja). Dapat dilihat di contoh.

YA

Planned

INTEGER

TIDAK

Pseq

INTEGER

Urutan kunjungan

TIDAK

CheckInTime

DATETIME

Waktu check in kunjungan

TIDAK

CheckOutTime

DATETIME

Waktu check out kunjungan

TIDAK

3. PurchaseInvoice(Item)

Berikut adalah tabel penjelasan property PurchaseInvoice(Item) yang dibutuhkan dan dapat digunakan pada saat membuat Model Template.

Nama Property
Tipe Data
Penjelasan
Dibutuhkan/Wajib

OriginId

STRING

Id dari data. Jika tidak ada id, maka dapat menggabungkan beberapa data pada excel sehingga unik.

YA

PurchaseNo

STRING

Nomor pembelian

YA

Status

STRING

Status pembelian

YA

PurchaseDate

DATE

Tanggal pembelian

YA

PaymentDueDate

DATE

Tanggal jatuh tempo pembayaran

YA

ProductCode

STRING

Kode produk

YA

ProductName

STRING

Nama produk

YA

Price

FLOAT

Longitude lokasi kunjunga

YA

TotalQuantity

FLOAT

Total penjualan

YA

LineTotal

FLOAT

Total pembelian

YA

TotalPayment

FLOAT

Total pembayaran

YA

SupplierId

STRING

Urutan kunjungan

YA

QuantityL

FLOAT

Kuantitas L

TIDAK

QuantityM

FLOAT

Kuantitas L

TIDAK

QuantityS

FLOAT

Kuantitas L

TIDAK

UnitL

STRING

Nama satuan L

TIDAK

UnitM

STRING

Nama satuan M

TIDAK

UnitS

STRING

Nama satuan S

TIDAK

DiscountItem

FLOAT

Diskon item (nominal)

TIDAK

Discount

FLOAT

Diskon pembelian (nominal)

TIDAK

Tax

FLOAT

Pajak (nominal)

TIDAK

ReferenceNo.

STRING

Nomor referensi

TIDAK

📌 ModelMapper Import & Export (PurchaseInvoice)

Pembuatan model mapper untuk PurchaseInvoice mengikuti alur yang sama seperti pada contoh SalesOrder sebelumnya. Cukup sesuaikan nama-nama propertinya dengan struktur data yang digunakan untuk PurchaseInvoice.

4. SalesInvoice(Item)

Berikut adalah tabel penjelasan property SalesInvoice(Item) yang dibutuhkan dan dapat digunakan pada saat membuat ModelMapper.

Nama Property
Tipe Data
Penjelasan
Dibutuhkan/Wajib

OriginId

STRING

Id dari data. Kalau tidak ada id dapat menggabungkan beberapa data pada excel sehingga unik.

YA

InvoiceNo

STRING

Nomor fakturpenjualan

YA

InvoiceDate

DATE

Tanggal fakturpenjualan

YA

Status

STRING

Status faktur penjualan

YA

CustomerId

STRING

Id Pelanggan

YA

CustomerCode

STRING

Kode Pelanggan

YA

CustomerName

STRING

Nama Pelanggan

YA

ProductCode

STRING

Kode Produk

YA

ProductName

STRING

Nama Produk

YA

Price

FLOAT

Harga Produk

YA

TotalQuantity

FLOAT

Total kuantitas

YA

LineTotal

FLOAT

Total penjualan

YA

SupplierId

STRING

Id Supplier (tidak perlu di excel, hanya modelmapper saja). Dapat dilihat di contoh.

YA

CustomerLatitude

FLOAT

Latitude lokasi pelanggan

TIDAK

CustomerLongitude

FLOAT

Longitude lokasi pelanggan

TIDAK

City

STRING

Kota

TIDAK

District

STRING

Kecamatan

TIDAK

Province

STRING

Provinsi

TIDAK

QuantityL

FLOAT

Kuantitas L

TIDAK

QuantityM

FLOAT

Kuantitas M

TIDAK

QuantityS

FLOAT

Kuantitas S

TIDAK

UnitL

STRING

Nama satuan L

TIDAK

UnitM

STRING

Nama satuan M

TIDAK

UnitS

STRING

Nama satuan S

TIDAK

DiscountItem

FLOAT

Diskon item (nominal)

TIDAK

DiscountInvoice

FLOAT

Diskon faktur (nominal)

TIDAK

Tax

FLOAT

Pajak (nominal)

TIDAK

DailyVisitItemId

STRING

Id DailyVisit untuk menandakan bahwa pesanan penjualan ini efective call atau tidak

TIDAK

📌 ModelMapper Import & Export (SalesInvoice)

Pembuatan model mapper untuk SalesInvoice mengikuti langkah yang sama seperti pada contoh SalesOrder. Kamu hanya perlu menyesuaikan nama-nama properti sesuai dengan struktur data yang digunakan untuk SalesInvoice.

5. Product

Berikut adalah tabel penjelasan property Product yang dibutuhkan dan dapat digunakan pada saat membuat ModelMapper.

Nama Property
Tipe Data
Penjelasan
Dibutuhkan/Wajib

OriginId

STRING

Id dari data. Kalau tidak ada id dapat menggabungkan beberapa data pada excel sehingga unik.

YA

Name

STRING

Nama

YA

Code

STRING

Kode

YA

SupplierId

STRING

Id Supplier (tidak perlu di excel, hanya modelmapper saja). Dapat dilihat di contoh.

YA

Category

STRING

Kategori

TIDAK

Division

STRING

Divisi

TIDAK

Supplier

STRING

Nama Supplier

TIDAK

Brand

STRING

Merek

TIDAK

UnitL

INTEGER

Nama satuan unit L

TIDAK

ConvertionL

STRING

Konversi L terhadap satuan terkecil

TIDAK

UnitM

STRING

Nama satuan unit M

TIDAK

ConvertionM

INTEGER

Konversi M terhadap satuan terkecil

TIDAK

UnitS

STRING

Nama satuan unit S

TIDAK

ConvertionS

INTEGER

Konversi S terhadap satuan terkecil

TIDAK

IsActive

BOOLEAN

Aktif atau tidak

TIDAK

IsTax

BOOLEAN

Kena Pajak atau tidak

TIDAK

IsProductFocus

BOOLEAN

TIDAK

ImageURL

STRING

Link foto produk

TIDAK

Length

INTEGER

Panjang

TIDAK

Width

INTEGER

Lebar

TIDAK

Height

INTEGER

Tinggi

TIDAK

CostPrice

FLOAT

Harga Beli

TIDAK

PriceAverage

FLOAT

Harga Rata-rata

TIDAK

LatestPrice

FLOAT

Harga terbaru

TIDAK

📌 ModelMapper Import & Export (Product)

Pembuatan model mapper untuk Product memiliki alur yang sama seperti pada contoh SalesOrder. Cukup sesuaikan nama-nama propertinya dengan struktur data atau tabel yang digunakan untuk modul Product.

6. Customer

Berikut adalah tabel penjelasan property Customer yang dibutuhkan dan dapat digunakan pada saat membuat ModelMapper.

Nama Property
Tipe Data
Penjelasan
Dibutuhkan/Wajib

OriginId

STRING

Id dari data. Kalau tidak ada id dapat menggabungkan beberapa data pada excel sehingga unik.

YA

Code

STRING

Kode

YA

Name

STRING

Nama

YA

Status

STRING

Status

YA

CustomerGroup

STRING

Nama kelompok pelanggan

TIDAK

PriceList

STRING

Nama daftar harga

TIDAK

PaymentTerm

STRING

Nama jangka waktu bayar

TIDAK

Telephone

STRING

Nomor telepon

TIDAK

Handphone

STRING

Nomor handphone

TIDAK

ContactPerson

STRING

Nama kontak

TIDAK

IdentityCard

STRING

Nomor KTP

TIDAK

NPWP

STRING

NPWP

TIDAK

NoKK

STRING

Nomor KK

TIDAK

Latitude

FLOAT

Latitude lokasi pelanggan

TIDAK

Longitude

FLOAT

Longitude lokasi pelanggan

TIDAK

Address

STRING

Alamat

TIDAK

Districts

STRING

Kecamatan

TIDAK

City

STRING

Kota

TIDAK

Province

STRING

Provinsi

TIDAK

Village

STRING

Desa

TIDAK

PostalCode

STRING

Kode Pos

TIDAK

Channel

STRING

Nama channel

TIDAK

IsTaxable

BOOLEAN

Kena pajak atau tidak

TIDAK

SupplierId

STRING

Id Supplier

TIDAK

📌 ModelMapper Import & Export (Customer)

Proses/Cara pembuatan model mapper Customer sama saja dengan contoh SalesOrder di atas. Sesuaikan saja nama-nama propertynya dengan tabel di atas. Namun, pada customer, SupplierId tidak wajib.

Last updated

Was this helpful?