Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Немає обміну з POS-сервером на касі

Кілька разів помилка моделюється при наступних вступних


1. Наш сервер (ліцензії можуть бути вже клаудні при цьому)


У лозі при цьому слід звернути увагу на ДВІ помилки

2024-07-07 13:26:52,777 (54799) [18] ERROR - Template:[{message} {method} {methodParams}] Values:[OrganizationSettings does not exist. You need to run POS synchronization at first.][/api/v2/getAccessToken][?userName=5294081&password=xxY%2B%5BYto&terminalId=86cf2a95-c2df-4963-b213-4c7ff3d037bc&protocol=20&type=1&rms=8.8.8001.0&machine=SYRVEPOS]
Необхідна первинна синхронізація POS.

Або інший варіант:

Error:Pos settings are not specified.; StackTrace: 
в iikoCard5.Pos.Synchronization.Services.UniformSynchronizeService.SynchronizeInternal(Boolean needRecreateDb) 
в iikoCard5.Pos.Synchronization.AbstractSynchronizeService.Synchronize(Boolean needRecreateDb);

ERROR - RabbitMq command failed: RabbitMQ: Cannot establish connection with corpit:*****@posmq.iiko.biz:5671.

Вирішення:

1) Увійти в web-морду сервера, а саме: /resto/service/maintance/groovy.jsp

2) Прогнати скрипт:

import com.google.common.collect.Iterables; import resto.core.RestoServiceLocator; import resto.db.EntitiesDatabaseSynchronizer; import resto.db.EntityManager; import resto.front.card_processing.iikoCard51.IikoCard51Settings; EntityManager em = RestoServiceLocator.get(EntityManager.class); em.runTransacted() { IikoCard51Settings settings = Iterables.getOnlyElement(em.getAllNotDeletedCopy(IikoCard51Settings.class)); settings.updating(); settings.update(); settings.setMainServerAddress("https://loyalty.syrve.live";); settings.setUseDefaultMqCredentials(false); settings.setMqHost("loyaltymq.syrve.live"); settings.setMqPort(5671); settings.setMqProtocol("amqps"); settings.setMqLogin("corpit"); settings.setMqPassword("xGh4RApm7v"); settings.updating(); settings.update(); out.println("Settings updated."); }; RestoServiceLocator.get(EntitiesDatabaseSynchronizer.class).flushNow(); out.println("Settings flushed.");
Відредагована версія скрипта (якщо попередня не спрацьовує)
import com.google.common.collect.Iterables
import resto.core.RestoServiceLocator
import resto.db.EntitiesDatabaseSynchronizer
import resto.db.EntityManager
import resto.front.card_processing.iikoCard51.IikoCard51Settings

EntityManager em = RestoServiceLocator.get(EntityManager.class)

em.runTransacted {
    IikoCard51Settings settings =
            Iterables.getOnlyElement(em.getAllNotDeletedCopy(IikoCard51Settings.class))

    settings.updating()

    settings.setMainServerAddress("https://loyalty.syrve.live")
    settings.setUseDefaultMqCredentials(false)
    settings.setMqHost("loyaltymq.syrve.live")
    settings.setMqPort(5671)
    settings.setMqProtocol("amqps")
    settings.setMqLogin("corpit")
    settings.setMqPassword("xGh4RApm7v")

    settings.update()

    out.println("Settings updated.")
}

RestoServiceLocator
        .get(EntitiesDatabaseSynchronizer.class)
        .flushNow()

out.println("Settings flushed.")
Відредагована версія скрипта №2 (якщо дві попередні не спрацьовують )
import com.google.common.collect.Iterables
import resto.core.RestoServiceLocator
import resto.db.EntitiesDatabaseSynchronizer
import resto.db.EntityManager
import resto.front.card_processing.iikoCard51.IikoCard51Settings

def em = RestoServiceLocator.get(EntityManager)

em.runTransacted({
    IikoCard51Settings settings =
            Iterables.getOnlyElement(em.getAllNotDeletedCopy(IikoCard51Settings))

    settings.updating()
    settings.update()

    settings.setMainServerAddress("https://loyalty.syrve.live";)
    settings.setUseDefaultMqCredentials(false)
    settings.setMqHost("loyaltymq.syrve.live")
    settings.setMqPort(5671)
    settings.setMqProtocol("amqps")
    settings.setMqLogin("corpit")
    settings.setMqPassword("xGh4RApm7v")

    settings.updating()
    settings.update()

    println "Settings updated."
} as Runnable)

RestoServiceLocator.get(EntitiesDatabaseSynchronizer).flushNow()
println "Settings flushed."
3) В результат скрипт віддасть:
Script output:
Settings updated. Settings flushed.
Після цього POS-вийде онлайн через кілька хвилин (рекомендую брати 5-7 для перевірки)