Troubleshooting NEOSYS Media System

From NEOSYS Technical Support Wiki

1 Run CREATEADS

CREATEADS can be implemented in several ways. Make sure after implementing CREATEADS, that it has successfully completed by

  1. Checking for a "CREATEADS finished" email
  2. Checking for an entry in the log which says "CREATEADS finished"

CREATEADS will completely rebuild !ADS index file so it is a solution for fixing damaged !ADS index file *but* REINDEXADS may be a better solution for this problem if there is a lot of data since it will not waste time recreating all the ads.

For NEOSYS versions before 15th May 2016, CREATEADS crashes during morning (recovery method 1 below) and even other times when handling large numbers of ads.

1.1 Recovery method 1: Media configuration file

Ads can be scheduled to recreate overnight in media configurations file. This setting in the configuration file runs CREATEADS overnight. CREATEADS will recreate ads from the current year plus the number of years prior to the current year.

E.g. If the current year is 2013 and you would like CREATEADS to recreate ads from 2012, configure number of years as 1. This means CREATEADS will recreate ads from 2012 to the current period.

Createads.jpg

After requesting this, the first NEOSYS process to startup before 7am on the next day will first perform CREATEADS before starting up the other processes. CREATEADS will run only on the LIVE database.

CREATEADS will not run unless system time is less than 7am. This is to ensure that CREATEADS is scheduled early and does not extend long enough to encroach on the users' working hours the next day.

1.2 Recovery method 2: Maintenance mode

This can take a long time on a large database and requires all users/NEOSYS processes for the same database to be shut down.

It will fix damaged ADS and !ADS files and recreate indexes.

F5
CREATEADS

1.3 Recovery method 3: Re-save schedules

It will not fix damaged files or recreate indexes.

Re-save the schedule(s) that show the problem. This is identical to CREATEADS but is much quicker and doesn't require all users to log off. Of course if there are many errors then this isn't a practical solution.

1.4 Recovery Method 4: Using Selective CREATEADS

The following recovery methods can be followed when users are online. They are slower and take more time. Any schedule open by users is not affected by CREATEADS, but the ads get created anyway when the schedule is saved. Avoid starting long running selective CREATEADS on a busy system. The following methods will not fix damaged files or recreate indexes.

1.4.1 All schedules

To run CREATEADS for all schedules while users are online, you can follow the procedure mentioned below:

SELECT SCHEDULES
CREATEADS

1.4.2 Specific schedules only

The following method can be used for selected schedules instead of re-saving them:

SELECT SCHEDULES “XYZ1201R” “XYZ1201T”
CREATEADS

1.4.3 For selected years only

The following method can be used to select schedules in selected years:

SELECT SCHEDULES WITH YEAR_PERIOD STARTING '10.' '11.'
CREATEADS

1.5 Recovery method 5: Selective REINDEXADS using Selective CREATEADS

Selective CREATEADS alone does not do a selective REINDEX. But it can be forced to do so by initially deleting all the ads of a particular schedule. Selecting on SCHEDULE_NO0, as shown below, results in a slow but complete search of all ads without using the index on SCHEDULE_NO

SELECT ADS WITH SCHEDULE_NO0 "XYZ1234A"
DELETE ADS
SELECT SCHEDULES "XYZ1234A"
CREATEADS

2 PLAN.SUB UPD.ADS subject mails

System generated email with subject PLAN.SUB UPD.ADS XYZ (XYZ is the schedule number) contains the below message. This email is an indication that schedule XYZ is very big and if steps are not taken to control the size then schedule XYZ will eventually lead to B703 error. Solutions to handle this schedule are same as B703 Errors.

The key list has exceeded the maximum allowed length.	
The list will be truncated.	
Do you want to continue? [Y/N]

3 B703 Errors

The B703 error is often related to something too big for NEOSYS to handle. It occurs when the user puts in too many ads in one schedule without setting up the vehicle to allow the same.

e.g In digital or radio/tv media there are hundred thousand impressions and hundreds of ads to be placed by the Clients. If a user puts these many ads in the schedule without checking the "Bulk Ad" option in the vehicle/Schedule file or putting all ads in a package, B703 errors will occur in NEOSYS. In the old version of NEOSYS, certification option is present in the Vehicle file instead of "Bulk Ad". If Bulk Ad is not enabled then no user will be able to add unlimited ads for a vehicle.

An example of this error is as follows :

ERROR NO: B703 IN BOOKING.SUBS3 AT 1264
Variable exceeds maximum length.0

Support MUST respond to such errors in a firm and effective manner to prevent any individual client user from causing this error again as every time the client causes this error, there may be more damage done to the database, which in turn will cause more work for the client and NEOSYS.

Various solutions are explained in detail below:

3.1 Solution 1

For mass advertising like Digital, Radio or any Media where you do not want to certify individual ads one by one

  1. Go to the respective vehicle file which has the too many Ads in the schedule and check the "Bulk Ad" option and save the file. You can also check "Bulk Ad" option using the schedule file
  2. Make sure Refresh the schedule screen to avoid getting cached old versions of the vehicle, either using the NEOSYS refresh button or reload the page
  3. Copy the schedule to a new schedule record (perhaps XXXB to keep the number where XXX is the previous schedule no)
  4. Delete the remainder of the ads (unbooked/uninvoiced) from the old schedule and delete the already booked and invoiced ads from the new one.
  5. Do not forget to check "Bulk Ad" on the new schedule if you are going to enable it using the schedule file.
  6. Save both the schedules.
  7. You might face problems and need NEOSYS Programmer's help to save the Old Schedule even after deleting a lot of things but deleting the old ads is less time critical perhaps (unless Client is invoicing them) than getting the new ads booked.
  8. Check that the new schedule has indeed switched to SUMMARY as follows:

In maintenance mode type

LIST SCHEDULES "16xxx" VEHICLE_CODE MASS_AD_FLAG

where 16xxx is the schedule code

and check that there is a 1 next to EVERY vehicle (not just the 1st few as in the following screenshot)

ScheduleAds.jpg

Advehicle.jpg

3.2 Solution 2

The package solution

This is the simplest solution. The idea is to put the ads as a package of ONE ad and put the gross unit price as the TOTAL price.
The ONE ad for many ads is great for packages

Impressions.jpg

3.3 Solution 3

Split the Schedule for below errors

"ERROR NO: B703 IN PRINTPLANS6" when printing schedules.
"ERROR NO: B703 IN UPD.ADS" when saving schedules  
"ERROR NO: B703 IN PRINTPLANS" when creating invoices.

3.4 Other B703 errors

3.5 Sample email to clients facing B703 error

Dear <XXXX>

Please either mark every vehicle line with the bulk option or split the schedule into two separate schedules.

B703 errors are related to something too big for NEOSYS to handle. A B703 error will happen when you try to print, book, certify or invoice a schedule with more than 10,000 ads in total. NEOSYS can't handle vehicles with too many ads unless the "Bulk Ads" option is used. For example, Digital/Radio/TV media where there are hundred thousand impressions or hundreds of ads to be placed.

* Solution 1 - Bulk Ads

For the current schedule file, check the "Bulk" option on all vehicle lines (1st screenshot).

To prevent this from happening in the future, enable the "Bulk ads" option in the vehicle file (2nd screenshot) and you won't have to do the above every time you use the vehicle when booking large numbers of ads.

* Solution 2 - Splitting schedules

Schedules can be split into smaller schedules to avoid B703 errors. Refer:  http://userwiki.neosys.com/index.php/Media_FAQ#How_to_split_large_schedules.3F

Split the schedule for below errors:

 "ERROR NO: B703 IN PRINTPLANS6" when printing schedules.

 "ERROR NO: B703 IN UPD.ADS" when saving schedules

 "ERROR NO: B703 IN PRINTPLANS" when creating invoices.

* Solution 3 - One package

Another simple solution is the package solution. The idea is to put the ads as a package of ONE ad and put the gross unit price as the TOTAL price. The ONE ad for many ads is great for packages.

<screenshots of bulk option on schedule file and on vehicle file>

4 Deleting Schedules using the Maintenance Window in NEOSYS

There can be a situation where Support may need to delete a Schedule via Maintenance with prior approval from the Client users. e.g. When users are not be able to access a schedule on NEOSYS and they want to delete it and create a new one. One reason for not being able to access a Schedule may be an Error saying Following Characters not allowed.If even after following the steps given in the link Support is not able to access the schedule, then follow the commands below to delete it.

Support MUST make sure before Deleting that no Ad is booked/certified/invoiced because in such cases there will be associated records saved in the database which also need to be removed, therefore Support MUST never go ahead with the steps below.


SELECT ADS WITH SCHEDULE_NO "XXXXXXXX"
DELETE ADS
FLUSH.INDEX
DELETE SCHEDULES "XXXXXXXX"

Support MUST run Media Diary Reports to make sure the Schedule and all its Ads are deleted.

╒═══════════════════════════════════TCL - 2══════════════════════════════════╕
│                                                                            │
│ :select ads with schedule_no "BCOCO0115K-PD9011ب-FB"                       │
│                                                                            │
╘════════════════════════════════════════════════════════════════════════════╛
╒═══════════════════════════════════TCL - 2══════════════════════════════════╕
│                                                                            │
│ :delete ads                                                                │
│                                                                            │
╘════════════════════════════════════════════════════════════════════════════╛
╒═══════════════════════════════════TCL - 2══════════════════════════════════╕
│                                                                            │
│ :FLUSH.INDEX                                                               │
│                                                                            │
╘════════════════════════════════════════════════════════════════════════════╛
╒═══════════════════════════════════TCL - 2══════════════════════════════════╕
│                                                                            │
│ :delete schedules "BCOCO0115K-PD9011ب-FB"                                  │
│                                                                            │
╘════════════════════════════════════════════════════════════════════════════╛

5 Deleting empty Booking Order using the Maintenance Window in NEOSYS

An empty booking order may appear in the list of booking orders if some error occurs when creating a booking order.

This empty order can be deleted in Maintenance mode as shown below.

In maintenance mode type

ED BOOKING.ORDERS '' 1

This will open the problematic booking order file as below.

Pressing Alt+D twice on the order ' '

Boempty.jpg

Then press ESC on order 1

The problematic booking order will no longer appear in List of Booking Orders.