The purpose of this page is to archive previously recorded videos. If you are new to the class and you want to review previous discussions. Start from the bottom of the archive page (first recording) and work your way up.
How to explain the relationships between a Plant, Work Center and Work Station
0:07:00 Mercurial discussion about maintaining a repository for an ADempiere customization project
0:12:30 Using Shipment to create Assets where a qty of 5 on a single shipment line will result in 5 assets with a qty of 1.
0:19:00 Using ModelValidator.Login() to dictate what Roles can be used from someone logging in from outside the company. This is a continuation from a discussion a couple of days back.
0:26:30 How to make a new table a sub-tab of an existing tab. Manipulate the Tab Level and the Parent Link columns.
0:30:00 Coping records - difference between the Copy Record toolbar and a Deep Copy process as demonstrated by Print Formats.
0:38:00 Print Format Pack Out discussion - sorry about the confusion about the Dictionary Only checkbox.
0:46:45 Pack Out your Pack Out - discussing the SQL nomenclature.
0:53:00 Print format discussion - how to create groups
Form + Table combo - similar to SO
Fake the funk with a table's ability to place columns below other columns
Use the Print Format's summary checkboxes on the Format Item subtab.
1:05:00 Discussion comparing Print Format and Jasper
BSD Balance Sheet Defense - Reconciliation and How to Resolve Balancing Issues
Introduction
0:01:00 Reset the database back to its original installation state when installed - note: this should not be done after you upgrade/update the database with migration scripts. Doing so will put your database out of sync with your software/binaries.
0:02:30 Install the BSD views
0:03:45 Pack in the BSD windows
0:04:30 Review BSD Summary after a fresh GardenWorld installation
I misspoke about running a process against multiple records simultaneously.
0:03:00 - what to do when you need the help of an outside developer (need a developer to create a process to turn a temp table into a Print Format then PDF then email it).
Ways a developer can access your information - direct, copy or obfuscated copy
0:11:00 - how to add Date Invoiced (or Invoiced Date) to your aging report
What are your options (a) modify the process or (b) create a Column SQL (ColSQL)
0:13:30 Tangent - why does the table name show as T_Aging_T_Aging - why double
0:19:00 Review the Aging Report & Process
0:20:30 Create the T_Aging DateInvoiced Column SQL and add it to the report.
0:32:00 PostgreSQL performance tuning
2014-09-11 PM - Open Discussion
Adding images/pictures options to products - make available in orders, etc...
0:06:15 How to quickly create an AP Credit Memo when the Vendor Invoice => Matched Invoice posts an IPV or Invoice Price Variance
0:15:00 Using an Inventory Move to pick/pull inventory for shipping/fulfillment - how do you get the move to automatically update the Shipment Line's Locator to reflect the move to the packing area?
0:27:15 Update the Sales Order/Line with delivery details (Open Time in this case) that should default from the Business Partner.
0:36:45 Managing Plugins and Pack Outs when you are creating plugins for just yourself or your company.
0:49:30 Quick Search window to find almost any document based on almost any field. VERY COOL!!!
2014-09-11 Balance Sheet Defense Installation
Introduction
0:01:30 Start from scratch - re-install the database using RUN_ImportIdempiere.sh. This will blow away all changes and bring the DB back to its state the day we installed the server.
0:05:15 Create new Client for our test
0:10:15 Review functions SQL
0:15:00 Download scripts so that we can modify them for our new client
0:17:00 Install the functions sql
0:17:15 Modify the BSD_Views_Detail.sql file to use IDs from our new client - Account IDs
0:23:30 Execute the BSD Audit scripts
0:23:45 Download and install the Pack In
0:30:15 How to create the BSD in ADempiere
0:31:00 OOOOOPS - forgot to update the BSD_Views_Detail.sql to include the updated C_DocType_IDs for the new client
0:37:00 Discuss and create Inventory BSD query
Be aware that this discussion is detailed and long.
Also be aware that you will learn how products relate to costing method relate to Cost element relate to the accounting schema
2014-09-11 AM - Open Discussion
Custom packing algorithm mapping to Shipment package tabs.
0:06:15 Creating a table from scratch - creating the table, generate model classes (model.generator), iModelFactory
0:15:00 programmatically create a multi-record/page PDF from an ArrayList in code - create temp table with unique ID, pass unique ID as a parameter to your print format.
0:21:00 Better Business Partner Info window
0:24:00 How to change development machines when all my work currently resides (and has always resided) on my original machine.
2014-09-09 AM - Balance Sheet Defense Discussion
Introduction
0:00:30 Controller's needs when defending the balance sheet, open balance accounts
0:01:00 black box diagram
0:01:45 define "open balance"
0:03:00 list of balance sheet open balance accounts (NIR, IC, API, APP, ARI, ARR, BIT, and Bank)
0:11:15 Two options for defending balance sheet open balance totals (today: BSD, Thursday: Account Recon)
0:11:45 BSD Summary
Create simple example - Qty: 1
0:12:30 Create PO
0:14:15 Create, Complete and Post MR (NIR) - Review BSD Summary
0:15:30 Explain difference between "Amt GL Schema" and "Trial Balance Schema" columns
0:17:00 Introduce BSD Detail window - show NIR details
0:20:30 Create, Complete and Post Vendor Invoice (IC and API) - Review BSD Summary
0:22:15 View Matched Invoice/Receipt to see how NIR and IC balances were cleared
0:23:30 Explain difference between "Amt Doc Source" and "Amt Doc Schema"
0:24:45 Create, Complete and Post an AP Payment against Invoice - Review BSD Summary
0:26:30 Note that GardenWorld's banks all share the same GL Account (BAD). This is why BIT is now out of balance for both bank accounts.
0:27:45 Allocation cleared the invoice API and the paymetn's APP.
0:29:15 Create, Complete and Post Bank Statement to move cash from BIT to Bank - Review BSD Summary
0:30:30 Clear existing transactions to start from scratch.
0:32:00 Quick discuss "Suspense Balance" and "Currency Balance" accounts in BSD Summary
0:32:30 Repeat the above scenario where you leave MR Qty unmatched - said another way - invoice only some of the MR's Qty.
0:33:45 Create PO and MR
0:34:45 NOTE: there was an issue here!!!
When I used the MR's "Generate Invoice from Receipt" process, it put the wrong Price List at the Vendor Invoice header.
When I changed the Qty of the Vendor Invoice line, it changed the price from $15 to $23 because the header had the wrong Price List.
I have an action to fix the code and submit it to the core iDempiere code base.
0:37:00 Is IPV (Invoice Price Variance) an Open Balance?
0:40:15 BSD Detail for NIR
0:42:00 Repeat the above scenario with a EUR (Euro multi-currency) PO and Vendor Invioce
0:42:00 Create a EUR Price list
0:43:15 Create and Complete a EUR PO
0:44:15 Create, Complete and Post a MR - Review BSD Summary and BSD Detail
0:46:45 Create, Complete and Post the EUR Vendor Invoice - Review BSD Summary
0:48:00 Note that "Amt Doc Source" can be a combination of multiple currencies. This fact makes the total a little erroneous.
0:49:30 Note: do not change a Currency Rate that has already been used. Changes include either (1) changing the existing rate, or (2) creating a new rate that has an effective date in the past.
0:51:30 Quick discussion of Inventory Clearing (IC).
0:54:30 BSD is best used when starting from your first transaction.
0:56:00 Using BSD for EOM - End of Month closing processes
0:57:00 No historical version of the BSD Summary and Detail - coming at some point.
Limiting access to roles based on whether the user is physically located inside your firewall. VPN termination point will give users specific IPs. The LoginValidator will get called before the session is loaded. Try to swap the Role before the session is loaded if the IP is from the outside.
0:13:15 How do delete transactional data to support mock go-live user testing
0:15:30 How to delete Business Partners and Products
0:18:30 New window is read only in WebUI and editable in Swing client
0:21:15 New import toolbar icon for importing records
2014-09-04 AM - Open Discussion
Custom app to log time against different processes (MO=>Activity, Request=>Service, etc...)
0:02:45 What is SWING? How does it differ from ZK/WebUI
0:04:45 Beginning SWING book
0:05:15 Using iDempiere's Payment Allocation as a reference as to how to create your own custom form - includes creating a core class that is shared between the SWING form and ZK form.
0:09:30 using a tablet from a remote location to access iDempiere or ADempiere (example: from a customer site)
options: (1) tablet's browser - like any computer or (2) remote desktop
0:14:00 How to use iDempiere's Tree (trees)? - how you know a tree node's parent (AD_TreeNode and AD_TreeNodePR)
0:17:45 Adding a tree to the Product window (enable the tab's HasTree - Has Tree flag)
2014-09-02 Drop Shipping Discussion and Demonstration
Introduction
Two perspectives of Drop Shipping
the manufacturer or source
the distribution company requesting the drop ship from the source to their customer
0:01:30 Discuss the Manufacturing perspective
0:02:30 Discuss the Distributor perspective
0:03:45 How to restore iDempiere back to its original state (when it was first installed). This action deletes all user created data.
0:04:30 Create your Drop Ship warehouse for the HQ organization
0:06:45 Update "HQ" Organization => Org Info tab and set the Dropship Organization field to our new Warehouse.
0:08:00 Demonstrate Scenario #1 (manufacturer fulfilling a drop ship request from my distributor)
Create new BP (Dropship Jane)
0:09:15 Create Dropship Jane and Joe Block Partner Relation record
0:10:15 Create Sales Order
0:11:00 Should you use the Drop Ship flag on the Sales Order?
0:12:30 Generate Shipment and zoom
0:13:30 Generate invoice and zoom
0:14:45 Demonstrate Scenario #2 (distributor asking a manufacturer to ship directly to the distributor's customer)
0:15:30 Create Sales Order
0:16:15 Create new Product for this scenario (tangent)
0:19:15 Generate PO from SO (Sales Order) with Drop Shipment = "Yes"
0:20:30 Complete PO
0:24:00 Create Material Receipt (to represent vendor's confirmation of delivery)
0:24:15 Note: MR => Create Lines From has bug where it leaves the Line's Locator = null
0:25:15 Complete MR and View Customer Shipment
0:27:15 Tracking non-confirmed Drop Ship Purchase Orders
Tangent to confirm isDelivered can be used to track non-delivered drop shipments - Chuck to submit bug for PO delivered = N when delivered.
0:33:00 When to set Sales Order isDropShip = Yes - can be good and bad.
work around: modify m_inout_candidate_v to remove dependency of isDropShip flag
0:37:30 Demonstrate Scenario #2 with non-stocked product - a product that is never stocked - only drop shipped.
0:40:15 Create non-stocked (Product Type = Service vs item)
0:41:15 Create new Sales Order (this time flag SO as Drop Ship = "Yes")
0:42:45 Create and Complete Material Receipt for non-stocked good
0:43:30 Review Material Receipt postings for non-stocked good - debits Product Expense instead of Product Asset
0:44:00 Tangent - accounting relationship between MR and Vendor Invoice when receiving Service (non-stocked) goods - Matched Invoice unwinds the second Product Expense posting.
Note: Drop Ship MR and Shipment execute almost simultaneously.
0:46:45 Create Customer Invoice
0:47:30 Discuss relationship between SO's QtyReserved in HQ Warehouse and PO's QtyOrdered (as viewed by Storage Detail)
2014-09-02 AM - Open Discussion
0:01:00 If we use a project, campaign, or activity on a document that posts, what is the impact? Why is it posting?
0:03:00 Accounting Segments - reference to the old days
0:05:00 Example posting using a Material Receipt
0:06:30 Accounting Fact Details - see everything about a document that posts to the GL
0:08:45 Managing scrap (non-conforming) material during a Manufacturing Order after the raw goods have been issued (cost collector created and completed) to the Manufacturing Order.
Create a Physical Inventory to reverse the effect of the Cost Collector and bring back the non-conforming material. This is important because you may want to the use the non-conforming material in another scenario.
Set the Physical Inventory => Line => Charge = usage variance GL account
0:17:30 linking multiple documents (Physical Inventory, GL Journal, etc..) to a Manufacturing Order to better manage the lifecycle of an order.
0:20:00 Create a Fail Code (Correction Code) window to be able to tag problems with reasons with why they occurred. Use this to describe why the above Physical Inventory was created.
0:21:15 another example - try why creating Physical Inventory created to scrap product - why scrapped?
0:27:00 Example of when Fail Codes can be used to support quality standards and reporting
0:29:15 Difference between Fail Codes and Validation
Validation used to prevent known issues
Fail Code used to describe situations what already happened - frequent fail codes may result in a new validation rules
See below for instruction on how to download the Transaction (Advanced Search) window to help make finding transactions by BP easier.
Column SQL (COLSQL) best practices
Advanced Search Packing
The purpose of this pack in (packin) is to create a collection of windows where you can quickly find records based on Business Partner, Product, etc...
Log into your client and open for the window named "Transactions (Advanced Search)".
What's Included
For now, the Pack In only includes one window (Transactions (Advanced Search)); however, I will include more in the future. Examples will be Sales Order, Purchase Order, Production, etc... Where each advanced search window flattens the header and line to make it really easy to find orders based on line details.
2014-08-26 PM - Open Discussion
Average Invoice Costing in Libero Manufacturing
0:01:00 Incorporating ADempiere 3.8 features in an ADempiere 3.7 system knowing that you will be eventually be upgrading to ADempiere 3.8
0:04:00 Material Receipt and Shipment Confirmation - how do they work, and why would you use them.
0:08:45 Transfer Pricing (Inter-Company) how to manage sales between locations.
Types of Transfer Pricing
Inventory - Transfer pricing revenue and expenses between organizations DO NOT zero out at consolidation
Promotional - Transfer pricing revenue and expenses between organizations zero out at consolidation
Service - Transfer pricing revenue and expenses between organizations zero out at consolidation
Management - Transfer pricing revenue and expenses between organizations zero out at consolidation
2014-08-26 AM - Open Discussion Part 2
Evan fulfillment questions
Using a process to call on another class that has a long-running method and still be able to update the user with the current status.
0:08:45 Deliver of goods and writing back to the shipment
0:16:00 Demonstrate Shipment's Package, MPS Line, Package Line
0:20:15 Create a new field of type Time (not Date Time)
0:21:00 Use a class/table model to write to the database. (also creates a change log!!!)
0:27:00 Kevin questions
Organization nesting
0:30:45 Organization Message Popup to restart the database - Commit warning - how to reset cache without rebooting (maybe :)
0:32:45 Warehouse and Locators - create multiple logical (iDempiere) warehouses for a given physical warehouse.
0:39:30 Tasks - how to create a local operating system (OS) call from iDempiere
Introduction
0:40:30 Examples out of the box
0:41:00 Why use Tasks?
0:42:00 Example discussion with WordPress
0:43:15 Example using Linux command 'touch' to create a new file.
0:45:30 Using context with Task
0:45:45 Where is Task using inside iDempiere (specifically workflow)
test with workflow Business Partner Approval example workflow
0:48:15 - debugging why workflow did not work
0:53:30 tangent - using Alerts to export window contents (reporting data) and automatically email managers.
0:55:15 how to get this feature implemented
0:58:15 Using Tasks to automate manufacturing processes/machines
2014-08-26 AM Open Discussion Part 1
Debugging a 25+ concurrent iDempiere where you install two servers (database on one and iDempiere app server on another)
0:08:00 AWS Security Group inbound rules to allow servers in the same security group to TCP or ICMP (ping) speak with each other.
0:17:30 Cash Advance System (Cash Drawer, Cash Book, petty cash)
0:18;30 Create a bank per team
0:20:30 Use Bank Transfer
0:24:30 Use AP Payment window to register the expense from presented receipts
FYI - You can use the Financial Reports or Trial Balance for the GL Account behind your bank to check your balance.
0:37:00 Bank Account reconciliation
0:39:00 Bank Account Accounting (select GL Account number)
2014-08-19 iDempiere Manufacturing (Production) Improvements Video - with References to Libero
The purpose of this video is to help organize opportunities for improvement in iDempiere's manufacturing. I believe this video does two things:
It outlines the high level process in manufacturing. This will help users who are new to manufacturing concepts.
It highlights some low-effort, high-reward changes to make manufacturing in iDempiere easier. This will help established manufacturing sites better use Production for MRP.
Please understand that I love and believe in iDempiere, and even though this video highlights some of its shortcomings, iDempiere is still a good product. My hope is that this video makes it better.
If you have questions, comments or concerns, or if you find any inaccuracies, please be quick to let me know.
NOTE: the Rollup BOM Cost process "is" now recursive.
Introduction - purpose of today's conversation
Provide tips and recommendations for improvement
Highlighting difference between Production and Libero
0:01:30 Costing in iDempiere
0:02:45 Setting Future cost = Current cost (with explanation of both fields)
NOTE: the Standard Cost Update process will set Future Cost = Current Cost for the "Material" Cost Element; however, it will not set it for other Standard Cost -> Cost Elements like "Labor". I did not take the time to investigate why it only works on "Material" Cost Element.
0:06:00 update Rollup BOM Cost process to take a Costing Method parameter instead of the Cost Element
NOTE/CORRECTION: you can maintain each Cost Element for the "Standard Cost" Costing method; however, you must remember to ALWAYS roll up ALL Standard Cost ->Cost Elements every time. For this reason, the recommendation is still very valid.
0:09:45 Reference Workflow and BOM Rollup process in Libero.
0:10:45 Introduction to the Product.LowLevel field as a way to identify a product's BOM Depth.
0:11:15 Be aware of rolling up BOM Costs for specific Products or Product Categories. You might invalidate your cost structure and introduce manufacturing variances.
0:12:45 Rolling up costs into Future Cost field (not current cost price)
0:13:30 Concept of setting BOM and Workflow formulas vs actuals
0:17:45 (LowLevel) update RollUp BOM Cost process to order the product by LowLevel. Start from the bottom an work your way up.
0:20:00 What is a RollUp BOM Cost process - in general
0:21:30 Update the RollUp BOM Cost to be able to specify which cost I want to use (Future vs Current).
0:24:15 Need Reports to show potential (future vs current) impacts on Inventory Value, Scheduled Orders, etc...
025:30 Run Standard Cost Update to push Future Costs to Current Cost and record Inventory Valuation changes.
0:29:30 Alternative: use a different Cost Type costing record as an alternative to using the Future Cost field.
General Concerns
0:32:30 Only one BOM per Product
0:33:30 Production has no concept of "Prepared"
0:38:30 Replenish process does not iterate across all BOM levels. You must
0:40:30 Production does not have a concept of planning (CRP). Frepple.com - open source MRP scheduling
0:42:30 Inventory Moves have no corresponding Order (as Sales Order is to a Shipment). Libero has a Distribution Order.
0:45:15 The concept of OnOrder and Reserved as an open balance that should be defended by the documents that account for the current totals. (reference - see the "A Better Solution").
0:52:45 I thought you could use the Role window => Doc Action Access tab to enable the "Prepare" option; however, it is already enabled. I will need to investigate further how to show the "Prepare" option for Inventory Move.
0:53:00 Product Info does not show Qty Pending Confirmation. (sorry - Document Type - not status:)
0:55:30 The Production Order does not have a reference to its parent. Out-sourced process 1 (cut fabric) then goes to Out-source process 2 (die fabric), etc...
0:56:45 Add Production Order to the list of Target Document Types for the Order Batch Process. Also add "Replenish or MRP Run" to select which documents to process.
0:59:30 Add Production window -> Reverse Correct button/process.
2014-08-19 Open Discussion AM
Posting end-user solutions
0:02:45 php convenience library for creating orders from a webstore (converts php natural structure to iDempiere composite SOAP request)
0:05:00 Modifying who can edit ADempiere and iDempiere reports
0:08:45 POS (OpenBravo or SmartPOS) installation and help options
0:17:00 Evan's Questions
Use webserivces or connect directly via a database (SQL)?
0:19:00 Update ASI, Attribute Set Instance, Lot, Serial - modify the M_AttributeSetInstance table/window to add custom fields
ACTION: Demonstrate this process
0:24:45 Using RMA/Return to process returns or reverse delivery
0:30:15 Adding custom fields to the Shipment window and Print Format (delivery note or packing slip). Demonstrated a way to add ColSQL (column sql- virtual column) where the results can be used everywhere (window, print format, code, etc...)
0:40:00 UOM Conversion - having a PO show a different UOM than product.
0:41:00 Modifying who can edit ADempiere and iDempiere reports - more conversation
2014-08-14 AM Inter-Company Transaction and Counter Documents
Introduction
0:01:00 Difference between Client and Organization (Org)
0:02:30 Transferring product, money and revenues/expenses between organization
0:03:00 Inter-Company transactions within a single document (diagram)
0:05:00 Tangent - suspense accounting
0:05:30 Setting Suspense Balancing and Inter-Company Due From and Due To settings
0:06:30 How the system calculates Inter-Company Due From and Due To amounts
0:08:00 Perform an example of inter-company transaction using an Inventory Move
0:11:30 Perform an example of inter-company transaction where you pay/receive money in a bank from one Organization for an Invoice from another Organization.
0:16:15 Arm's length transaction - recognize revenue and loss associated with moving inventory.
0:17:30 Perform an example of inter-company transaction using a GL Journal to represent product movement revenue and expense.
0:21:15 Perform an example of inter-company transaction using an Invoice instead of a GL Journal
0:25:45 How to remove "Allow Negative Postings"
0:26:30 Why use an Invoice instead of a GL Journal - to write to all Accounting Schemas simultaneously (with an Invoice).
0:27:45 Counter Document introduction
0:28:00 Example of why use Counter Documents - need real/formal Invoice to file for GST Tax reclamation.
0:30:00 Description of Counter Documents
0:31:30 Outstanding issue with Counter Documents relating to consolidation
0:34:30 Outstanding issue with Counter Documents relating to Shipment <-> Material Receipt timing
IMPORTANT NOTE: I miss spoke about which transaction should be re-classed to inter-comany Revenue and COGS. What should happen is the inter-company sell side (both COGS and Revenue) should go to inter-company accounts. Nothing from the sell to the customer should change. This is better described in the consolidation section.