Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Cari Blog Ini

14 Oktober 2026

AX 2012 Legacy Report

 

1. Method element yang relevan pada report AX 2012

Berikut method yang relevan untuk memahami alur report klasik. Ini bukan daftar lengkap seluruh method internal ReportRun, tetapi mencakup method penting untuk kasus Anda.

A. Method untuk alur data dan pencetakan

Method

Fungsi

run()

Memulai proses report. Implementasi standar mengatur prompt, mengambil data, lalu mengarahkan hasil ke output.


fetch()

Menjalankan query report dan mengirim record yang ditemukan melalui send(). Nilai balik menentukan apakah pemrosesan dilanjutkan.



send()

Mengirim record ke section Body yang sesuai. Ada beberapa overload, termasuk yang menerima record dan level section.



executeSection()

Mencetak section tertentu. Pada Body, method ini dipicu saat send() memproses record.


execute(int)

Menjalankan programmable section berdasarkan level yang diberikan.



print()

Mengarahkan report yang telah dihasilkan ke media output, seperti layar atau printer.


Microsoft Learn

reset()

Mereset state agar instance ReportRun dapat digunakan untuk membuat report lain.

query()

Mengakses query yang digunakan report; berguna saat memeriksa sumber dan range data.

B. Method untuk halaman dan format

Method

Fungsi

newPage()

Meminta report memulai halaman baru.

newPage(boolean)

Varian dengan parameter Boolean untuk mengatur perilaku page break. Detail semantiknya perlu diverifikasi pada versi AX yang digunakan.

page() / page(int)

Mengakses atau mengatur informasi halaman; pastikan overload yang dipakai sesuai kebutuhan.

pagesTotal()

Mendapatkan informasi jumlah halaman report.

pageFormatting()

Menampilkan pengaturan properti printer.

packPageSettings()

Mengemas pengaturan halaman.

packPrinterSettings()

Mengemas pengaturan printer.

packPrintJobSettings()

Mengemas pengaturan pekerjaan cetak.

Daftar method ReportRun Microsoft mencantumkan method-method tersebut. Perlu diingat, dokumentasi API yang tersedia saat ini juga mencakup versi Dynamics yang lebih baru, sehingga detail implementasi internalnya tidak selalu identik dengan AX 2012.


C. Method untuk mengatur section

Method

Kegunaan

enableBody() / enableBody(int)

Mengaktifkan Body tertentu.

disableBody() / disableBody(int)

Menonaktifkan Body tertentu.

enableAllBodies()

Mengaktifkan seluruh Body.

enableSection(ReportSection)

Mengaktifkan section tertentu.

disableSection(ReportSection)

Menonaktifkan section tertentu.

enablePageFooter() / disablePageFooter()

Mengatur pencetakan page footer.

executeHeader()

Menjalankan section Header.

executeFooter()

Menjalankan section Footer.

executeBodyColumnHeadings()

Menjalankan heading kolom Body.

executeColumnHeadings(ReportSection)

Menjalankan heading kolom pada section tertentu.

header(...) / footer(...)

Mengatur pemrosesan Header atau Footer berdasarkan section dan level.

sectionsLeft(ReportSection)

Memeriksa informasi section yang tersisa dalam alur report.

Method di atas berguna ketika Anda ingin mengontrol section mana yang dicetak atau kapan bagian report dieksekusi.


D. Method untuk query dan informasi report

Method

Kegunaan

query() / query(Query)

Mengambil atau menetapkan objek query report.

queryRun() / queryRun(QueryRun)

Mengambil atau menetapkan objek QueryRun.

design() / design(Object)

Mengambil atau menetapkan design report.

report()

Mengakses informasi report yang sedang dijalankan.

reportUser() / reportUser(String)

Mengambil atau menetapkan informasi user report.

args()

Mengakses argumen yang diberikan saat objek dibuat.

hasGeneratedDesign()

Memeriksa apakah report memakai generated design.

name() / name(String)

Mengambil atau menetapkan nama objek.

init()

Inisialisasi objek report.

prompt()

Menampilkan dialog pengaturan sebelum report dijalankan.

getTarget() / setTarget(PrintMedium)

Mengakses atau menetapkan target output report.

Referensi method ReportRun mencantumkan kelompok method tersebut.


E. Method untuk printer dan pengaturan output

Ada banyak accessor untuk informasi printer, antara lain:

  • printerPrinterName() — nama printer.

  • printerDriverName() — nama driver.

  • printerPortName() — port printer.

  • printerServerName() — server printer.

  • printerPaper() — informasi kertas.

  • printerPageHeight() / printerPageWidth() — dimensi halaman printer.

  • printerSettings() — pengaturan printer.

  • printJobSettings() — pengaturan pekerjaan cetak.

  • copies() / copies(int) — jumlah salinan.

  • collate() / collate(boolean) — pengaturan pengurutan salinan.

  • deviceName() / deviceName(String) — informasi perangkat output.

  • getNumberOfPrinters() / getPrinter(int) — informasi printer yang tersedia.

Perlu diperhatikan bahwa sebagian besar accessor printer tersebut merupakan informasi atau pengaturan output, bukan pengendali iterasi record.


F. Method untuk subtotal, footer, dan informasi halaman

Method

Kegunaan

sum() / sumPos() / sumNeg()

Mengakses fungsi agregasi dan subtotal report.

sumControl() / sumControlPos() / sumControlNeg()

Mengakses agregasi berdasarkan control.

printSum()

Mengakses informasi pencetakan subtotal.

addPendingSums()

Memproses footer yang berkaitan dengan subtotal.

addRangeDescription()

Menambahkan deskripsi range report.

getRangeDescription()

Mengambil deskripsi range.

clearAllRangeDescriptions()

Menghapus deskripsi range.

caption()

Mengatur caption preview atau nama dokumen cetak.

title() / title(String)

Mengambil atau mengatur judul pekerjaan cetak.

progressInfo()

Membuat informasi progres pemrosesan report.

suppressReportIsEmptyMessage()

Mengatur pesan ketika report kosong.

13 April 2026

Apache HOP

Apache HOP adalah bagian penting dari data warehouse. Fungsinya sebagai pengambil dan pengolah data.
Dia adalah ETL (Extract, Transfer dan Load).

Untuk percobaan pertama, saya gunakan Apache Hop untuk melakukan migrasi dari database Sql Server 2016 ke SQL server 2012. Ada beberapa jalan sih, tapi saya coba pakai ETL sekalian untuk memahami Apache HOP

Jadi ada beberapa tabel yang akan diproses. Gambarnya seperti dibawah ini



Gambar diatas adalah gambar dari Workflow.
Yang saya sudah pelajari sejauh ini, ada dua bagian besar di Apache HOP, yaitu Workflow dan Pipeline.
A pipeline is a linear, automated sequence of stages designed to process data or tasks from start to finish, often running tasks concurrently. A workflow is a broader, often non-linear, set of procedures or rules that manage the overall logic, orchestration, and human-in-the-loop steps to complete a project. 
Dalam case ini, setiap tabel secara umum dibuatkan satu pipeline. 

Tabel input, adalah proses SELECT nya. Sedang table Output adalah proses INSERT INTO nya.
Pada tabel input dan output ada setting untuk connectionnya. Maka connectoin di tabel input adalah koneksi ke SQL Server 2016 sedang output pakai koneksi ke SQL Server 2012 (berarti ada 2 koneksi yang perlu dipsersiapkan sebelumnya).

Namun ada satu tabel yang tidak menggunakan pipeline. Ada tabel yang kolom ID nya pakai identity seed. Yaitu auto incerement. Jika menggunakan pipiline seperti tabel lain, maka akan error terkait kolom identitiy ini.
Untuk itu saya buat workflow lagi terkait masalah ini.

Dari workflow ini, terlihat pertama melakukan cek apakah ada tabel_temp, jika tidak ada maka melakukan pembuatan tabel temp. Kemudian copy dari tabel asli ke tabel temp. Tabel temp ini secara struktur sama persis dengan tabel asli, namun kolom ID nya tidak di set auto identity. Setelah data tercopy ke tabel temp, maka jalan kan query: INSERT INTO tabel_asli SELECT from tabel_temp.

Dalam SQL Script ini juga ditambahkan SET IDENTITY_INSERT tabel_asli ON; agar saat insert ke tabel asli tidak error seperti sebelumnya.
Setelah proses selesai, maka tabel temp dihapus.

Setelah workflow tabel khusus tadi selesai, maka ada proses query SELECT count untuk melihat apakah DB Asal dan DB Tujuan sudah sama.

Saya puas dengan fitur-fitur yang ada di Apache HOP. Lengkap saya kira. Walau hanya mencoba beberapa fitur. 
Selanjutnya akan saya coba untuk kasus data warehouse yang ingin saya buat.