Creating Opportunities - Blank Page and not saving.

All,

We have a IIS/ MSSQL install. We have been able to add accounts and contacts without problem. Because of this I do not believe there is an issue with permissions on either the directory or database.

HOWEVER, when we try to create opportunity is shows ‘Saving’ briefly at the top of the screen then loads a blank page.
The blank page address is http://crm..co.uk/index.php and it shows a little diamond as the favicon.

Can anyone help?
Thanks

Blank pages are normally PHP fatal errors, you should have something in your suitecrm.log or on your IIS logs, to tell you exactly where things went wrong…

Hi, sorry for taking so long to reply. My suitecrm.log is chock full of this:

The 'Bad date’s do not correspond to the dates I am selecting for my opportunities so I’m not sure if related or not?

Thanks

People running MySql version 5.7 are getting similar problems with an SQL parameter called NO_ZERO_DATE.

Basically it’s a restriction on SQL to not accept dates that are zeros, something that SuiteCRM often uses.

I see zeros in your “datetime” fields, maybe there is something similar to that parameter in Microsoft SQL Server?

This may be useful to others, we were trying to retrieve records also and were getting a similar set of errors.

Problems turned out to be in the method retrieve_by_string_fields which does not use the check_date_relationships_load which in turns translates the date into the proper format.

Wrote a custom method retrieveByArray which works similar to retrieve_by_string_fields except it uses the method “retrieve” after it gets the ID of the bean from SQL.

Method either return an instantiated SugarBean object or NULL in case it doesn’t find the record with matching parameters.

function retrieveByArray(SugarBean $bean, array $fields): ?SugarBean
{
    $whereClauses = $bean->get_where($fields);
    $query = "SELECT id
                  FROM " . $bean->getTableName() . " 
                  " . $whereClauses;
    $id = $bean->db->getOne($query);

    if (empty($id)) {
        return null;
    }

    $bean->retrieve($id);

    return $bean;
}

Can you clarify where this method is called? I am having this problem with a workflow calculated field that is supposed to calculate the date_end of a Meeting by adding minutes to the date_start. I can’t get that to work so to see what was going on I changed the workflow to put the new date in the description field instead of date_end. That actually works - the description field gets updated correctly but the log shows this message every time the process runs:

Bad date 2019-05-01 19:45:00 for format m/d/Y H:i

The formula I am using is: {addMinutes(Y-m-d H:i:s; {P2};{multiply({add(0.50; 1.25)}; 60)})} where {P2} is Start Date Raw value

2019-05-01 19:45:00 is the correct date._start