Part Checking in Sales order
find first part where
part.Company = ttorderdtl.Company and
part.PartNum = ttorderdtl.PartNum no-lock no-error.
if not available part then do:
{lib/PublishEx.i &ExMsg = "'Invalid Part Number'"}
{&THROW_PUBLIC}.
end.
AP Invoice Posting locked
Go to SQL Query and type Select * from Rvlock
if data is there delete the row.
then repost the AP Invoice.
still it is not posted.
open epicor admin tools
and run conversion 10250
then repost the AP Invoice
Part Number Auto generate using BPM in Epicor
Find ttPart where ttPart.RowMod = "A" no-error.
If Available ttPart then do :
For each Part where Part.Company = ttPart.Company and part.Shortchar01
= ttPart.ShortChar01 and Part.ProdCode = ttPart.ProdCode :
if Part.Number01 = 0 then
ttPart.Number01 = 100015.
end.
end.
ttPart.PartNum = ttPart.ShortChar01 + ttPart.ProdCode + String(ttPart.Number01).
Find ttPart where ttPart.RowMod = "A" no-error.
If Available ttPart then do :
For each Part where Part.Company = ttPart.Company and part.Shortchar01
= ttPart.ShortChar01 and Part.ProdCode = ttPart.ProdCode :
if Part.Number01 > 0 then
ttPart.Number01 = Part.Number01 + 1.
end.
end.
ttPart.PartNum = ttPart.ShortChar01 + ttPart.ProdCode + String(ttPart.Number01).
Check Duplicate PO in Sales Order using BPM in Epicor
Open the Method Directives application (in the standard Epicor menu — Main Menu >> System Management >> Business Process Management >> Setup >> Method Directives).

Click the “Method Code” button to open the search window, and search for the Method Name starting at “Update” and the Business Object “SalesOrder.” Select the “Update” method.

From the menu or toolbar, select File >> New >> New Pre-Processing.

Give your directive the name “Check for Duplicate PO,” and check the “Enabled” and “Prevent Endless Loops” check boxes.

Click the “Conditions” button and then the “Add Line” button.

Under “User Text” select “number of rows in the designed query…”.

Click the “designed query” hyperlink and then give the query a name — “DupPO”, type in the query “for each ttOrderHed no-lock , each OrderHed no-lock where (OrderHed.CustNum = ttOrderHed.CustNum and OrderHed.PONum = ttOrderHed.PONum and OrderHed.OrderNum <> ttOrderHed.OrderNum )” and then click “OK.”

Leave the “is not less than 1″ portion of the condition as is, and click “OK.”

Click the “Actions” button and then the “Add Line” button.

Select the “show informational message based on the designed template” option.

Click the “designed” hyperlink, and enter the name, severity, and message text.

If you want to show the PO number the user entered, click “Insert” and enter the name “PONum”, select the proper table “ttOrderHed”, check all the boxes, and check the “PONum” field name. Click OK.

As soon as you save your work, the Method Directive will be called anytime and anywhere the SalesOrder.Update method is called.

Add New Button in Epicor Action Menu using VB.Net
Private sub AddTools()
Dim custButton As New Infragistics.Win.UltraWinToolbars.ButtonTool("TestTool")
Dim pop As Infragistics.Win.UltraWinToolbars.PopupMenuTool = Nothing
custButton.SharedProps.Caption = "Print Receipt"
If baseToolbarsManager.Tools.Exists("TestTool") = False Then
baseToolbarsManager.Tools.Add(custButton)
baseToolbarsManager.Toolbars("Standard Tools").Tools.Add(custButton)
baseToolbarsManager.Tools("ActionsMenu").SharedProps.Enabled = True
pop = DirectCast(baseToolbarsManager.Tools("ActionsMenu"),
for each ttorderdtl where (ttorderdtl.RowMod = 'U' OR ttorderdtl.RowMod = 'A')
no-lock: find first part where
part.Company = ttorderdtl.Company and
part.PartNum = ttorderdtl.PartNum no-lock no-error.
if not available part then do:
{lib/PublishEx.i &ExMsg = "'Invalid Part Number'"}
{&THROW_PUBLIC}.
end.
end.
AP Invoice Posting locked
Go to SQL Query and type Select * from Rvlock
if data is there delete the row.
then repost the AP Invoice.
still it is not posted.
open epicor admin tools
and run conversion 10250
then repost the AP Invoice
Part Number Auto generate using BPM in Epicor
Find ttPart where ttPart.RowMod = "A" no-error.
If Available ttPart then do :
For each Part where Part.Company = ttPart.Company and part.Shortchar01
= ttPart.ShortChar01 and Part.ProdCode = ttPart.ProdCode :
if Part.Number01 = 0 then
ttPart.Number01 = 100015.
end.
end.
ttPart.PartNum = ttPart.ShortChar01 + ttPart.ProdCode + String(ttPart.Number01).
Find ttPart where ttPart.RowMod = "A" no-error.
If Available ttPart then do :
For each Part where Part.Company = ttPart.Company and part.Shortchar01
= ttPart.ShortChar01 and Part.ProdCode = ttPart.ProdCode :
if Part.Number01 > 0 then
ttPart.Number01 = Part.Number01 + 1.
end.
end.
ttPart.PartNum = ttPart.ShortChar01 + ttPart.ProdCode + String(ttPart.Number01).
Check Duplicate PO in Sales Order using BPM in Epicor
Open the Method Directives application (in the standard Epicor menu — Main Menu >> System Management >> Business Process Management >> Setup >> Method Directives).

Click the “Method Code” button to open the search window, and search for the Method Name starting at “Update” and the Business Object “SalesOrder.” Select the “Update” method.

From the menu or toolbar, select File >> New >> New Pre-Processing.

Give your directive the name “Check for Duplicate PO,” and check the “Enabled” and “Prevent Endless Loops” check boxes.

Click the “Conditions” button and then the “Add Line” button.

Under “User Text” select “number of rows in the designed query…”.

Click the “designed query” hyperlink and then give the query a name — “DupPO”, type in the query “for each ttOrderHed no-lock , each OrderHed no-lock where (OrderHed.CustNum = ttOrderHed.CustNum and OrderHed.PONum = ttOrderHed.PONum and OrderHed.OrderNum <> ttOrderHed.OrderNum )” and then click “OK.”

Leave the “is not less than 1″ portion of the condition as is, and click “OK.”

Click the “Actions” button and then the “Add Line” button.

Select the “show informational message based on the designed template” option.

Click the “designed” hyperlink, and enter the name, severity, and message text.

If you want to show the PO number the user entered, click “Insert” and enter the name “PONum”, select the proper table “ttOrderHed”, check all the boxes, and check the “PONum” field name. Click OK.

As soon as you save your work, the Method Directive will be called anytime and anywhere the SalesOrder.Update method is called.

Add New Button in Epicor Action Menu using VB.Net
Private sub AddTools()
Dim custButton As New Infragistics.Win.UltraWinToolbars.ButtonTool("TestTool")
Dim pop As Infragistics.Win.UltraWinToolbars.PopupMenuTool = Nothing
custButton.SharedProps.Caption = "Print Receipt"
If baseToolbarsManager.Tools.Exists("TestTool") = False Then
baseToolbarsManager.Tools.Add(custButton)
baseToolbarsManager.Toolbars("Standard Tools").Tools.Add(custButton)
baseToolbarsManager.Tools("ActionsMenu").SharedProps.Enabled = True
pop = DirectCast(baseToolbarsManager.Tools("ActionsMenu"),
Infragistics.Win.UltraWinToolbars.PopupMenuTool)
pop.Tools.AddRange(New Infragistics.Win.UltraWinToolbars.ToolBase() {custButton})
Dim intFuncImage As System.Drawing.Image = EpiUIImages.GetImage("InternalFunction")
Dim app As New Infragistics.Win.Appearance()
app.Image = intFuncImage
baseToolbarsManager.Tools("TestTool").SharedProps.AppearancesLarge.Appearance = app
baseToolbarsManager.Tools("TestTool").SharedProps.AppearancesSmall.Appearance = app
End If
End sub
Private Sub QuoteForm_Load(ByVal sender As Object, ByVal args As EventArgs)
AddTools()
End Sub
Private Sub baseToolbarsManager_ToolClick(ByVal sender As Object, ByVal args As Infragistics.Win.UltraWinToolbars.ToolClickEventArgs)
If args.Tool.Key.tostring() = "TestTool" then
Dim QView As EpiDataView = CType(oTrans.EpiDataViews("QuoteHed"), EpiDataView)
Dim QuoteStr As Int32 = QView.dataView(QView.Row)("QuoteNum")
Process.Start("Crystal.exe",QuoteStr )
End if
End Sub
Dim intFuncImage As System.Drawing.Image = EpiUIImages.GetImage("InternalFunction")
Dim app As New Infragistics.Win.Appearance()
app.Image = intFuncImage
baseToolbarsManager.Tools("TestTool").SharedProps.AppearancesLarge.Appearance = app
baseToolbarsManager.Tools("TestTool").SharedProps.AppearancesSmall.Appearance = app
End If
End sub
Private Sub QuoteForm_Load(ByVal sender As Object, ByVal args As EventArgs)
AddTools()
End Sub
Private Sub baseToolbarsManager_ToolClick(ByVal sender As Object, ByVal args As Infragistics.Win.UltraWinToolbars.ToolClickEventArgs)
If args.Tool.Key.tostring() = "TestTool" then
Dim QView As EpiDataView = CType(oTrans.EpiDataViews("QuoteHed"), EpiDataView)
Dim QuoteStr As Int32 = QView.dataView(QView.Row)("QuoteNum")
Process.Start("Crystal.exe",QuoteStr )
End if
End Sub
You know how to make a custom button to the button refresh in dashboard-assembly?
ReplyDeleteInside the button try to write the code "oTrans.Refresh()" function and see..
ReplyDeleteThank you for compiling such a valuable collection of resources and insights on Epicor. This page serves as an excellent reference for professionals seeking to deepen their understanding of Epicor's functionalities and best practices. The range of topics covered, from implementation strategies to troubleshooting tips, is particularly helpful for organizations aiming to optimize their use of the platform.
ReplyDeleteI would be interested in any additional content you may have on advanced features or lesser-known capabilities within Epicor that can drive further operational efficiencies. Insights into how different industries have successfully leveraged Epicor would also be beneficial.
Looking forward to your continued contributions to this space and more expert guidance on leveraging Epicor to its fullest potential.
Epicforcetech
Top-notch website! Explore erp companies in India. Visit Index Infotech, where we empower businesses with expert industry-specific Epicor ERP solutions.
ReplyDelete