In a conventional M3 Program, data in some fields can be searched by pressing the F4 key or Browse function.
Using MAK (M3 Adaptation Kit – the framework to develop M3 programs), it is just mater of overriding PxPMT() to enable this Browse feature. However, in SDK development, we don’t have that option. Neither a function to override nor control to re-use.
Instead, using WPF & C# we have to create it from the scratch. I did this for my current SDK project and going to share with SDK development community.
There is an article in Potato IT blog (https://potatoit.kiwi/2013/09/19/smart-office-sdk-first-project-part-6-the-browse-control/). This was a good starting point for me. However, since I have MAK background, I wanted to implement similar way, that PxPMT() method does (below is an excerpt of M3 Browse )
That is, the client (developer) should not worry about the data binding, extraction logic etc. Instead, only specify Logical file, it’s keys with values, columns to be displayed, etc.
Similar way, my SDK app should be called without any data extraction logic etc. (like below code).
The Transactions InitBrowse & LstBrowse are actually doing the work. You will understand this when we talk about the C#/WPF code. But for now, for your quick information, I summarized it as below.
- InitBrowse – Returns the browse definition of the search field with the columns headings. As in the above code , if you are going to search BANO (lot number ) , first we want to know what are the keys , key positions in order to get the BANO value. That is CONO (company) & ITNO(Item Number). Likewise, InitBrowse API provides us these metadata.
- LstBrowse – Gets data for the given search field (BANO) along with meta information from InitBrowse API.
In the next post (Part 2) I’m going to explain the C#/WPF Code.