AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.03.2007, 09:17   #21  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от EVGL Посмотреть сообщение
Интересно, если Аксапта исполняет две строчки кода за, скажем, 2 микросекунды, то какова вероятность наступления полуночи за этот промежуток времени?

2 E(-6) / 3600 / 24 ~ 1,5 E(-10)
Это если этот код исполняется 1 раз в сутки. А если в полнось что-то пишет в лог большую кучу записей, то вероятность равна времени между соседними вызовами/общее время выполнения повторяющегося куска.

Интересно, а этот код сделан умозрительно или человек сторлкнулся с проблемой?
Старый 07.03.2007, 12:54   #22  
ziva is offline
ziva
Иван Захаров
Злыдни
Лучший по профессии AXAWARD 2013
 
65 / 106 (4) +++++
Регистрация: 25.03.2005
Цитата:
Сообщение от belugin Посмотреть сообщение
Интересно, а этот код сделан умозрительно или человек столкнулся с проблемой?
Интеграция AX c другой системой. Сделано специально - дабы проблем не возникло.
Старый 07.03.2007, 14:08   #23  
Волчара is offline
Волчара
Участник
 
210 / 29 (1) +++
Регистрация: 08.02.2003
Адрес: Москва
Цитата:
Сообщение от belugin Посмотреть сообщение
Вероятно человек боялся что код запустят в полночь....
Ну если полночь произойдет после whilt при выполнении return, то изврат не поможет.

проще так
return [today(), timenow()];
__________________
Благодарю за поддержку ИЦ Кариатиду и Koder Logic
Старый 07.03.2007, 14:11   #24  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Может когда время = полночь минус 1 минута, запускать sleep на 2 минуты?
А уже на второй минуте след. дня начинать то, чего там планировалось

Последний раз редактировалось kashperuk; 07.03.2007 в 14:32. Причина: упс. очепятка
Старый 07.03.2007, 14:30   #25  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Волчара Посмотреть сообщение
Ну если полночь произойдет после whilt при выполнении return, то изврат не поможет.

проще так
return [today(), timenow()];

Тут не главное, чтобы дата сопадала с чем-то - а главное, чтобы время дата относилась к тому времени которое обозначено.
Чтобы не было 02.01.07 23:59 вместо 01.01.07 23:59 пусть лучше будет
02.01.07 00:01
Старый 07.03.2007, 14:44   #26  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Да... программистский подход был у автора.

Я бы запомнил дату до и после запроса времени, если бы они отличались, то вывел бы полночь для второй даты, а если нет, то время и вторую дату.

Вообще по БестПрактису код лучше писать наглядно (ну типа он без комментариев д.б. понятен).

С очень высокой вероятностью если автору показать этот кусок кода через год после его написания и без предварительной подготовки (т.е. внезапно), он далеко не сразу сообразит, чего он им хотел добиться.
__________________
С уважением,
glibs®
Старый 07.03.2007, 15:05   #27  
ziva is offline
ziva
Иван Захаров
Злыдни
Лучший по профессии AXAWARD 2013
 
65 / 106 (4) +++++
Регистрация: 25.03.2005
Цитата:
Сообщение от glibs Посмотреть сообщение
С очень высокой вероятностью если автору показать этот кусок кода через год после его написания и без предварительной подготовки (т.е. внезапно), он далеко не сразу сообразит, чего он им хотел добиться.
А на этот случай перед методом имеются комментарии:

// Получение текущей даты и времени с проверкой
// на случай, что между вызовами today() и timenow() наступит новый день

Их я опустил намеренно - чтобы всеобщий разум пошевелил извилинами. Вон EVGL "выдал" совершенно понятный код.
Старый 07.03.2007, 15:09   #28  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
лично мне исходный вариант нравится больше всего. По-моему всё понятно.
Старый 07.03.2007, 15:52   #29  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от ziva
...
А на этот случай перед методом имеются комментарии:
...
"...
Вообще по БестПрактису код лучше писать наглядно (ну типа он без комментариев д.б. понятен).
..."

Для тех, кто перед праздником утратил бдительность, обращаю внимание, что я не против комментариев, а наоборот — за их использование. Но одно второму не мешает, и друг друга не исключает.
__________________
С уважением,
glibs®
Старый 07.03.2007, 16:13   #30  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
любой вариант постребует комментариев на тему "зачем". Хотя мне и так было, в-общем, понятно. Достаточно просто задать себе вопрос при каких условиях условие в вайле будет тру.
Старый 07.03.2007, 16:24   #31  
DTD is offline
DTD
Участник
 
183 / 18 (1) ++
Регистрация: 09.08.2005
Цитата:
Сообщение от EVGL Посмотреть сообщение
Они, британцы, к этому серьезно относятся. В одном решении, которое адаптировали для англичан, пришлось поменять всех "vendors" на "suppliers", "production order" на "works order", "inventory" на "stock".
Надо было labels сразу использовать, не пришлось бы менять )
__________________
_databaseTransDelete ... bl@$ !
Старый 07.03.2007, 16:27   #32  
DTD is offline
DTD
Участник
 
183 / 18 (1) ++
Регистрация: 09.08.2005
Мне еще нравится подобная практика использования комментариев:
X++:
info('@NEO258'); //DocuView
__________________
_databaseTransDelete ... bl@$ !
Старый 07.03.2007, 16:27   #33  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от DTD Посмотреть сообщение
Надо было labels сразу использовать, не пришлось бы менять )
Обижаете. Естественно, что использовали labels, но сначала сделали их только для языка en-us.
Старый 07.03.2007, 16:33   #34  
DTD is offline
DTD
Участник
 
183 / 18 (1) ++
Регистрация: 09.08.2005
Цитата:
Сообщение от EVGL Посмотреть сообщение
Обижаете. Естественно, что использовали labels, но сначала сделали их только для языка en-us.
Если речь o vendors, inventory .. то это стандартные labels, в en-gb они соответственно suppliers, stock ..
__________________
_databaseTransDelete ... bl@$ !
За это сообщение автора поблагодарили: EVGL (-1).
Старый 19.04.2007, 16:47   #35  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Как сделать 4 ошибки в слове "еще"?
Из Reports\JmgAbsenceColumn\fetch в 3.0:

X++:
while select sum(seconds) from jmgStampTrans
 group by JobIDAbs
 where jmgStampTrans.emplId    == _jmgEmployee.emplId                    &&
          jmgStampTrans.startDate >= jmgReport_AbsenceColumn.parmDateFrom() &&
          jmgStampTrans.startDate <= jmgReport_AbsenceColumn.parmDateTo()   &&
          jmgStampTrans.stampType == JmgStampTypeEnum::Absence
{
   wrkIndex = str2Int(jmgStampTrans.jobIdAbs);
   if (! wrkIndex)
      wrkIndex = str2Int(jmgStampTrans.jobId);
   if ((wrkIndex) && (arrayIndex[wrkIndex]))
      sumSeconds[arrayIndex[wrkIndex]] += jmgStampTrans.seconds;
}
Обратите внимание на str2Int(jmgStampTrans.jobId). Найдите 2 ошибки
Старый 28.04.2007, 13:09   #36  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
X++:
void loadParam(container _param = conNull())
{
    int i;
    if (conLen(_param) > 0)
    {
        param = conNull();
        for (i = 1; i <= conlen(_param); i++)
        {
            param = conIns(param, i, conPeek(_param, i));
        }
    }
}
За это сообщение автора поблагодарили: kashperuk (1).
Старый 28.04.2007, 13:14   #37  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Прикольная тема.
И особо мне нравится, как мне приходят уведомления о новых сообщениях в ней на почту.

Название темы там отображается не так "The Daily Axapta WTF"
а так
Миниатюры
Нажмите на изображение для увеличения
Название: WTF.PNG
Просмотров: 940
Размер:	2.4 Кб
ID:	2597  
Старый 28.04.2007, 13:36   #38  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от EVGL Посмотреть сообщение
Из Reports\JmgAbsenceColumn\fetch в 3.0:

X++:
while select sum(seconds) from jmgStampTrans
 group by JobIDAbs
 where jmgStampTrans.emplId    == _jmgEmployee.emplId                    &&
          jmgStampTrans.startDate >= jmgReport_AbsenceColumn.parmDateFrom() &&
          jmgStampTrans.startDate <= jmgReport_AbsenceColumn.parmDateTo()   &&
          jmgStampTrans.stampType == JmgStampTypeEnum::Absence
{
   wrkIndex = str2Int(jmgStampTrans.jobIdAbs);
   if (! wrkIndex)
      wrkIndex = str2Int(jmgStampTrans.jobId);
   if ((wrkIndex) && (arrayIndex[wrkIndex]))
      sumSeconds[arrayIndex[wrkIndex]] += jmgStampTrans.seconds;
}
Обратите внимание на str2Int(jmgStampTrans.jobId). Найдите 2 ошибки
Евгений.
Первая ошибка - простая. Не выбирается JobId
А в чем вторая ошибка-то?

Я же так понимаю ошибка должна быть именно в этой строке?
И это ведь не вызов str2Int без проверки, что это таки число? И не длина строки? И не номерная серия?
Просвети

Последний раз редактировалось kashperuk; 28.04.2007 в 13:43.
Старый 28.04.2007, 21:01   #39  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Вторая ошибка: JobId типа ProdJobId - это строка с обычной номерной серией, у которой вполне может быть буквенный префикс или суффикс, а они преобразуют его в индекс массива.

А в примере Белугина программист, похоже, был уверен, что контейнеры передаются по ссылке. Тяжелый случай.
Старый 29.04.2007, 00:25   #40  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от EVGL Посмотреть сообщение
Вторая ошибка: JobId типа ProdJobId - это строка с обычной номерной серией, у которой вполне может быть буквенный префикс или суффикс, а они преобразуют его в индекс массива.

А в примере Белугина программист, похоже, был уверен, что контейнеры передаются по ссылке. Тяжелый случай.
JmgJobId - EDT для этого поля в 3ке. И на него не настроена номерная серия.

PS В четверке, кстати, у меня тоже так. Только что проверил.

Последний раз редактировалось kashperuk; 29.04.2007 в 02:20.
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:41.