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

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

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

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

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

Последний раз редактировалось kashperuk; 07.03.2007 в 14:32. Причина: упс. очепятка
Старый 07.03.2007, 14:30   #25  
belugin is offline
belugin
Участник
Аватар для belugin
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
Сотрудники Microsoft Dynamics
 
3,903 / 2027 (75) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Цитата:
Сообщение от Волчара Посмотреть сообщение
Ну если полночь произойдет после 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
Лучший по профессии 2011
Сотрудники компании It Box
Лучший по профессии 2009
Most Valuable Professional
 
4,942 / 901 (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
Иван Захаров
Аватар для ziva
Лучший по профессии AXAWARD 2013
Злыдни
 
62 / 87 (3) ++++
Регистрация: 25.03.2005
Адрес: Moscow
Цитата:
Сообщение от glibs Посмотреть сообщение
С очень высокой вероятностью если автору показать этот кусок кода через год после его написания и без предварительной подготовки (т.е. внезапно), он далеко не сразу сообразит, чего он им хотел добиться.
А на этот случай перед методом имеются комментарии:

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

Их я опустил намеренно - чтобы всеобщий разум пошевелил извилинами. Вон EVGL "выдал" совершенно понятный код.
Старый 07.03.2007, 15:09   #28  
belugin is offline
belugin
Участник
Аватар для belugin
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
Сотрудники Microsoft Dynamics
 
3,903 / 2027 (75) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
лично мне исходный вариант нравится больше всего. По-моему всё понятно.
Старый 07.03.2007, 15:52   #29  
glibs is offline
glibs
Member
Лучший по профессии 2011
Сотрудники компании It Box
Лучший по профессии 2009
Most Valuable Professional
 
4,942 / 901 (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
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
Сотрудники Microsoft Dynamics
 
3,903 / 2027 (75) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
любой вариант постребует комментариев на тему "зачем". Хотя мне и так было, в-общем, понятно. Достаточно просто задать себе вопрос при каких условиях условие в вайле будет тру.
Старый 07.03.2007, 16:24   #31  
DTD is offline
DTD
Участник
 
177 / 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
Участник
 
177 / 18 (1) ++
Регистрация: 09.08.2005
Мне еще нравится подобная практика использования комментариев:
X++:
info('@NEO258'); //DocuView
__________________
_databaseTransDelete ... bl@$ !
Старый 07.03.2007, 16:27   #33  
EVGL is offline
EVGL
Moderator
Лучший по профессии 2014
Соотечественники
 
3,466 / 1896 (70) ++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от DTD Посмотреть сообщение
Надо было labels сразу использовать, не пришлось бы менять )
Обижаете. Естественно, что использовали labels, но сначала сделали их только для языка en-us.
Старый 07.03.2007, 16:33   #34  
DTD is offline
DTD
Участник
 
177 / 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
Moderator
Лучший по профессии 2014
Соотечественники
 
3,466 / 1896 (70) ++++++++
Регистрация: 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
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
Сотрудники Microsoft Dynamics
 
3,903 / 2027 (75) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
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
Senior SDE, Dynamics AX
Аватар для kashperuk
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
4,287 / 1948 (73) ++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Прикольная тема.
И особо мне нравится, как мне приходят уведомления о новых сообщениях в ней на почту.

Название темы там отображается не так "The Daily Axapta WTF"
а так
Миниатюры
Нажмите на изображение для увеличения
Название: WTF.PNG
Просмотров: 320
Размер:	2.4 Кб
ID:	2597  
Старый 28.04.2007, 13:36   #38  
kashperuk is offline
kashperuk
Senior SDE, Dynamics AX
Аватар для kashperuk
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
4,287 / 1948 (73) ++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Цитата:
Сообщение от 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
Moderator
Лучший по профессии 2014
Соотечественники
 
3,466 / 1896 (70) ++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Вторая ошибка: JobId типа ProdJobId - это строка с обычной номерной серией, у которой вполне может быть буквенный префикс или суффикс, а они преобразуют его в индекс массива.

А в примере Белугина программист, похоже, был уверен, что контейнеры передаются по ссылке. Тяжелый случай.
Старый 29.04.2007, 00:25   #40  
kashperuk is offline
kashperuk
Senior SDE, Dynamics AX
Аватар для kashperuk
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
4,287 / 1948 (73) ++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Цитата:
Сообщение от EVGL Посмотреть сообщение
Вторая ошибка: JobId типа ProdJobId - это строка с обычной номерной серией, у которой вполне может быть буквенный префикс или суффикс, а они преобразуют его в индекс массива.

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

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

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

 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:42.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.