Overview (FAQ1 ) -
Quick FAQ dump of things we've not had time to create standard helpdesk tickets for.
Generally all bugs will be corrected by code, however, sometimes there'll be a kludge or a manual record fix.
Users do not have access to make these corrections, which are generally kludge until a programatic correction is developed (if ever).
We have the following versions of Powerforce:
- DEVEL10_SQL ( Baseline version )
- GEO (SQL)
To program the tabbing under generic baseline, place the following code into the <S> of the "TAB" widget
declare subroutine Set_Property
Page = Get_Property(CtrlEntId, 'VALUE')
SWB (Scheduling Workbench)
- [T] CLIENT_CONTRACTS <cc_cas_payclass> <<69>> the new payclass based upon Grade XLATE from <cc_cas_grade> <<87>.
- [S] validate_payclass : does the compare of payclass against CLIENT_CONTRACTS to see if flicking class based on CASUAL / PPT. On [W] CLIENT_OPERATIONS settings. Called principally from [S] TIME_SCHEDULER_SUB
- [S] time_bookings_sub - srtn which has logic for costing shifts. Has check for client override rates.
[S] time_scheduler_calc - looks like calc relating to employee only
[S] time_bookings_costings_sub -
- [S] time_scheduler_sub - calls [W] time_bookings or [W] time_bookings_roster on an edit of the shift
- [S] TIME_BOOKINGS_SUB - called with 'CALC_POST_TIME' when lostfocus on post_time field.
- SWB - on a recost, the classification code cannot ever be changed.
You can change things within the classification, and the shift will re-calc using the new values.
Things like site specific classifications cause this to not allow changes.
The (EDMEN) system though - you can do anything.
Top of Page
- Case of shift costings not working at all. Charges were set up correctly. After a lot of searching the scheduling code 'N' did not have onCharge checked.
- Std Schedules workbench - the data on display is driven by the "Last Rotation W/E Date" value +/- rotation cycle (in days). [T] MASTER_ROTATION_SCHEDULE / [DATE_LAST_CYCLE]
Top of Page
- Open a window from another - then send actions into newly started window.
Declare Function set_Property, start_Window
atWindow = Start_Window("TABLE_BROWSER", @Window)
objxArray = atWindow : ".TABLENAME"
propArray = "DEFPROP"
dataArray = "AVERY_LABELS"
dataArray = set_Property( objxArray, propArray, dataArray )
Call send_Event(atWindow : ".BTN_LOAD", "CLICK")
- I have seen when save.list, and the activate.list - code which reads the actual saved list as follows:
KeyList = Xlate("SYSLISTS", ListName, '', "X")
The <1> entry is actually a header, and hence the actual keys that were saved away start at <2>.
- Instances of CREATE event not working when window is called from another. You have to code the [Script] on the CREATE event of the called window to be like this:
/* this is the script code on the window Create event */
call send_message(@WINDOW:".RESULTS", "OLE.Navigate2","about:blank")
& then I've seen this in another
CLIENT_CONTRACT_DETAILS_SUB ('CREATE', CreateParam)
- Sequence to start dialog window & get reply back
stat = Dialog_Box("CLIENT_CONTACTS", @Window,"FRED") - 'FRED" will pass in as the CreateParam via a script of the called window
end_dialog(@WINDOW, reply_1 :@FM: reply_2)
The return 0 has to be included
- Apparently there's a means to do the same using Q-events. That is to code, the call params as "@PARAM1" - which will pass the passed params into the subroutine.
- retval = popup(@window,"","CONTACTS")
// TODO clear out cut/paste buffer (from Excel)
void = set_property('CLIPBOARD', 'TEXT',"")
void = OleCallMethod(objWorkBook , 'Close')
Top of Page
- The display says Date/Time Actioned - is actually working against the key 'call_taken_date', 'call_taken_time'. The headers & SQL data are mis-aligned, but we will change this at some future stage. .
And this runs of " where source = 'EDHEAL'
order by call_taken_date, call_taken_time "
- When debugging the dashboard, nv_dashboard works on the shift date being GE today()
- RTIM<160>, <161>, <162> are cust_confirmed_shift, cust_confirmed_by, cust_confirmed_timedate() & the basis of display logic on the dashboard
Pressing the clock, asks for confirm with customer, employee - which calls [S] time_scheduler_confirm_sub -> confirm_shifts_sub -> audit_roster_update_sub. Confirm_shifts does the <160>..<162> setting.
The elements involved in creating an award:
Check the writeup pay/pharmacy award for worked example.
Top of Page
- [S] wwa_mfs --> [T] wwa_log.
<0> datetime() * tableName * id.
<1> 3 = WRITE, 4 = DELETE are the control records.
- SQL version needs 9.3 as a min. We have a 3 user "M" licence.
- Random SQL: where category = 51 and id LIKE 'MENU%'
Top of Page
- [S] mpd_import_acs_openbal
- [S] mpd_import_acs_emps
- Issue with labour to sales report - turned out to be (1) no invoice*co control batch record, and then the scheudling code "N" had show on P&L report option un-checked.
- The charge rates for clients and D1 codes etc are held on [F] CHARGE_RATES
- P/O numbers not printint out on invoices - quick patch: SERVICE_INVOICES/<x>, <83,1> will print into the header area of the invoice.
- Emailing invoices automatically requires data setup as follows:
CNA <37> - find EMAIL_INV, set CLIENT_CONTRACTS<109>="EMAIL"
// Even though clients may have email addresses, you still have to set the send invoice via email flag.
- [T] SERVICE_INVOICES / GEN_NO : RTC / INVOICE_XREF
- To clear a GEN, <15> = 0
Top of Page
- Case of 'employee in another payrun". The error reports have been enhanced to print out more meaningful messages, however what had happened was that a "PAYRUN" record of .null. was created and hence the message was correct, but didn't make sense. Deleting the null record removed the error. Cause is probably a debug break by users when processing a payrun.
- Super reports & EPS to Super companies was stuffed up because EDMEN have a non-std way of processing SUPER. Whilst PF processes super on the calendar month, they process it last week of previous to 2nd to last of current. The way to do this is to select the payruns for which you want to run the process - which then gives a value of 2 to Jan Super. To overcome this had to change supernnuation_sub - last line to say x = false$, and superannuation_reports - to force the month into '2' where it checks processing month vs super month. Then re-create the SUPER for the whole period spanning two months - all reports worked.
The Superannuation_report uses the start date to pick off its MONTH field. Might change this to be the End Date.
I'm trying setting PAYRUN/SUPER_PROCESSED to "", and then re-process the pays.
To allow the system to manually select pays- reset PAYRUN <43> "super_processed" to .null., which then allows the pay into a dropdown for selection.
- Invoices print incorrect address on consolidated invoices. [T] SERVICE_INVOICES<14> has site. Change <14,1> to be the address that you want to print. Print option uses <14,1>.
Top of Page
- Setting up Micropay for ACS type processing (link). Note the control records to be set up & rephr010 is the report which dumps out what the Micropay export will look like.
- ACS - Micropay 2 records in [SYSTEM_CONTROLS] "SYSTEM*MICROPAY_INTERFACE*<<COMPANY>>" &
- (If the system*micropay_interface record is not present for a company, the Micropay button does not appear on the GUI).
which has following layout:
To clear the SYSLISTS table
RUN ALIAS_TABLE "REVBOOT","GLOBAL","SYSLISTS","QF"
RUN CLEAR_TABLE QF
Remote deskton on console (admin mode)
mstsc /v: lpspayroll - invokes remote desktop in admin mode (@ console of remote host)
To have the new nice nvzn logo come up, [T] SYSTEM_CONTROLS / INTERFACE_CONTROLS has to be as follows:
The trick is that the record id, has no *<company> suffix to this stage. The call / image is setup in [S] mms_init.
- Coding client specific once of routines: mpd_<<customer_code>>_*
- xcopy sub-dirs :
start xcopy *.ov c:\temp\mpd /s/y
start command /c xcopy *.lk c:\temp\mpd /s/y
- Payroll problems such as broken links - or why shifts won't load into PWB.
The select against RTC is generally PAY_XREF <37> & UNPAID_STATUS <44>
The quirk of how invoice # are stored in RTC:
Invoice_Ref = Arg<RTIM_INVOICE_XREF> ; // <97?
Case Invoice_Ref Ne ''
If Index(Invoice_Ref,'*',1) Then
Invoice_No = Xlate('SERVICE_INV_WRK',Invoice_Ref,'INV_XREF','X')
Invoice_No = Invoice_Ref